我一直在尝试更改UITabBarItem文本字体,大小和重量,因为它是当前选中的标签。我已经通过UIControlState.Selected实现了颜色的改变,但由于某种原因,字体没有改变。我已经在整个互联网上搜索了12个小时,这似乎是一个未解之谜!我认为Swift或XCode中存在一个错误,因为当前功能很奇怪!
我目前的代码:
class CustomUITabBarItem: UITabBarItem {
// Setting Font Constants Here
let fontNormal = UIFont.systemFontOfSize(12)
let fontSelected = UIFont.systemFontOfSize(14, weight: UIFontWeightBold)
override func awakeFromNib() {
// Following line sets Normal state attributes and it works fine
self.setTitleTextAttributes([NSFontAttributeName: fontNormal, NSForegroundColorAttributeName: UIColor.grayColor()], forState: UIControlState.Normal)
// Following line should set Selected state attributes but it has unexpected behaviour
self.setTitleTextAttributes([NSFontAttributeName: fontSelected, NSForegroundColorAttributeName: UIColor.orangeColor()], forState: UIControlState.Selected)
}
}
最终结果令人困惑,因为UIControlState.Selected文本仅应用了颜色属性,但字体类型,大小和重量不会改变。我花了几个小时测试不同功能的代码,甚至试图找出一个全面的解决方案,但我在我的智慧结束。
当然,.Selected属性在文本上是活动的,因为颜色会发生变化,但它不允许字体操作(但允许它处于.Normal状态...),只有颜色?我错过了什么,或者有什么方法可以解决这个问题?
额外信息: 构建到iOS9.3.2设备,Swift 2.2,XCode 7.3.1,OSX El Capitan 10.11.5