【发布时间】:2019-02-09 00:02:58
【问题描述】:
我的应用中有一个包含 3 个范围标题的搜索栏标签。 在 iPhone 上,这些标题的字体大小很好,但在 iPad 上太小了,我找不到 R.R 功能可以像故事板中的普通文本一样更改! 有什么简单的方法可以解决这个问题吗?
【问题讨论】:
标签: ios swift xcode uisearchbar
我的应用中有一个包含 3 个范围标题的搜索栏标签。 在 iPhone 上,这些标题的字体大小很好,但在 iPad 上太小了,我找不到 R.R 功能可以像故事板中的普通文本一样更改! 有什么简单的方法可以解决这个问题吗?
【问题讨论】:
标签: ios swift xcode uisearchbar
setScopeBarButtonTitleTextAttributes:forState: 为给定状态的搜索栏按钮的标题字符串设置文本属性。
let font = UIFont.systemFont(ofSize: 24)
self.searchBar.setScopeBarButtonTitleTextAttributes([NSAttributedString.Key.font : font], for: .normal)
在 cmets 中回答您的问题。
更新搜索栏中UITextField的字体大小
通过迭代子视图从searchBar中提取UITextField对象,然后更新它的字体。
extension UISearchBar {
func update(font : UIFont?) {
for view in (self.subviews[0]).subviews {
if let textField = view as? UITextField {
textField.font = font
}
}
}
}
在初始化 searchBar 对象时使用此方法更新字体
@IBOutlet weak var searchBar:UISearchBar!{
didSet {
searchBar.update(font: UIFont.systemFont(ofSize: 30))
}
}
【讨论】:
viewDidLoad 方法中使用这行代码并确保searchBar 是从@IBOutlet 连接或以编程方式启动的。