Ios Can';无法读取UITabBarItem外观上的titleTextAttributes
我正在设计我正在构建的应用程序的样式。我想对选项卡栏应用一些系统范围的样式(字体),然后在某些情况下设置颜色之类的样式。我遇到了两个问题:Ios Can';无法读取UITabBarItem外观上的titleTextAttributes,ios,swift,uikit,uiappearance,Ios,Swift,Uikit,Uiappearance,我正在设计我正在构建的应用程序的样式。我想对选项卡栏应用一些系统范围的样式(字体),然后在某些情况下设置颜色之类的样式。我遇到了两个问题: 在UITabBar实例上使用setTitleTextAttributes:forState:设置任何titleTextAttributes时,它会立即忽略在外观代理上设置的任何titleTextAttributes(包括未在实例上设置但在外观代理上设置的键) 为了修复(1),我只是想从外观代理复制titleTextAttributes,然后用我想要应用于实
setTitleTextAttributes:forState:
设置任何titleTextAttributes时,它会立即忽略在外观代理上设置的任何titleTextAttributes(包括未在实例上设置但在外观代理上设置的键)
// AppDelegate
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UITabBarItem.appearance().setTitleTextAttributes([
NSFontAttributeName: UIFont(name: "Lato-Regular", size: 20.0)!
], forState: .Normal)
}
// Later on in a ViewController that has a UITabBar
override func viewDidLoad() {
var attributes = UITabBarItem.appearance().titleTextAttributesForState(state) ?? [NSObject: AnyObject]()
assert(attributes.count > 0, "Could not read titleTextAttributes set on appearance proxy!")
}
// AppDelegate
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
UITabBarItem.appearance().setTitleTextAttributes([
NSFontAttributeName: UIFont(name: "Lato-Regular", size: 20.0)!
], forState: .Normal)
}
// Later on in a ViewController that has a UITabBar
override func viewDidLoad() {
var attributes = UITabBarItem.appearance().titleTextAttributesForState(state) ?? [NSObject: AnyObject]()
assert(attributes.count > 0, "Could not read titleTextAttributes set on appearance proxy!")
}