更新到 Swift 4 后,我收到编译器错误:
Static member 'appearance' cannot be used on protocol metatype 'UIAppearance.Protocol'
这是我在自定义标签栏控制器子类中的viewWillAppear
方法,我正在设置项目文本的字体。
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// compiler error on line below
UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.font: font], for: UIControlState.normal)
}
我在解决此问题时遇到问题,任何指导将不胜感激,谢谢!
对 - 当前的 Swift 4 转换工具(从 Xcode 9 Beta 4 开始(有点得意忘形。
我能够通过还原UIAppearance
转换代码,然后更新各个属性来快速解决问题。
例如,在 Swift 3 中,我有:
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: .selected)
Xcode通过将其更改为"帮助"了我:
UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected)
我能够通过半还原来消除错误,以:
UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected)