我有一个UITableView
我以编程方式添加UISearchController
作为标题。由于我是以编程方式添加的,因此我无法从故事板中更改字体。我需要更改UISearchBar
字体以匹配应用程序其余部分的字体。我需要更改UISearchBar
或整个tableViewHeader
我在Objective-c中看到了类似的问题和答案,但是我在 Swift 中开发我的应用程序,我试图在另一个问题上转换答案以下代码,但它仍然无法工作:
let lightFont = UIFont(name: "GothamRounded-Light", size: 15)
for subview in searchController.searchBar.subviews {
if subview is UITextField{
(subview as! UITextField).font = lightFont
}
}
答案 0 :(得分:1)
你需要遍历它的子视图才能找到UITextField(不能通过属性访问)
for subview in search.subviews {
if subview is UITextField {
(subview as! UITextField).font = UIFont(name: "Arial", size: 24.0)
}
}
然后你可以设置它的字体。
答案 1 :(得分:1)
试试这个:
let textFieldInSearchBar = searchBar.value(forKey: "searchField") as? UITextField
textFieldInSearchBar?.font = UIFont.systemFont(ofSize: 10)
答案 2 :(得分:1)
在 viewDidLoad()
中添加以下代码let textFieldInsideUISearchBar = searchBar.value(forKey: "searchField") as? UITextField
let placeholderLabel = textFieldInsideUISearchBar?.value(forKey: "placeholderLabel") as? UILabel
placeholderLabel?.font = UIFont(name: "Avenir Next", size: 13.0) //this will set custom font to placeholder font
textFieldInsideUISearchBar?.font = placeholderLabel?.font //this will set custom font to text font
这会在UISearchBar
。
答案 3 :(得分:-1)
if #available(iOS 9.0, *) {
UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).textColor = UIColor.blueColor()
UITextField.appearanceWhenContainedInInstancesOfClasses([UISearchBar.self]).font = UIFont.systemFontOfSize(17)
}