UISearchBarのフォントサイズと色を変更する方法を数時間グーグルで検索しましたが、それに関連するドキュメントはありません。
これは私がこれまでにSwift 4:
searchBar = UISearchBar(frame: CGRect(x: 0, y: 0, width: view.frame.width - (menuImage.frame.width + iconImage.frame.width + 55), height: 30))
searchBar.placeholder = "SEARCH BAR"
searchBar.tintColor = UIColor.gray
searchBar.delegate = self
searchBar.font = [UIFont fontWithName:@"Oswald" size:11];
しかし、それは私にエラーを与えました。
UISearchBarのフォントサイズと色を変更する方法を教えてください。
助けてください!!!
外観プロキシを使用して、UISearchBar
テキストとプレースホルダーのスタイルを設定できます。
プレースホルダーの変更:
let placeholderAppearance = UILabel.appearance(whenContainedInInstancesOf: [UISearchBar.self])
placeholderAppearance.font = UIFont(name: "Baskerville", size: 14)
placeholderAppearance.textColor = .red
検索テキストの変更:
let searchTextAppearance = UITextField.appearance(whenContainedInInstancesOf: [UISearchBar.self])
searchTextAppearance.font = UIFont(name: "Baskerville", size: 14)
searchTextAppearance.textColor = .green
searchBarOutlet.setScopeBarButtonTitleTextAttributes([NSForegroundColorAttributeName: UIColor.whiteColor()], forState:UIControlState.Normal)
IOS 13以降では、UISearchBarにはsearchTextField
というプロパティがあります。ただし、以前は、このプロパティを使用できません。
したがって、UISearchBarを拡張できます。
extension UISearchBar {
var textField: UITextField? {
if #available(iOS 13.0, *) {
return self.searchTextField
} else {
// Fallback on earlier versions
for view in (self.subviews[0]).subviews {
if let textField = view as? UITextField {
return textField
}
}
}
return nil
}
}
そして使用:
searchBar.textField?.font = UIFont.systemFont(ofSize: 12)