Après la mise à jour vers Swift 4, je reçois une erreur de compilation:
Static member 'appearance' cannot be used on protocol metatype 'UIAppearance.Protocol'
Voici ma méthode viewWillAppear
dans ma sous-classe de contrôleur de barre d'onglets personnalisée, je règle la police du texte de l'élément.
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
// compiler error on line below
UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.font: font], for: UIControlState.normal)
}
J'ai du mal à résoudre ce problème, tout conseil serait apprécié, merci!
À droite - l'outil de conversion Swift 4 actuel (à partir de Xcode 9 Beta 4) est un peu emporté.
J'ai pu résoudre le problème rapidement en rétablissant le code de conversion UIAppearance
, puis en mettant à jour les attributs individuels.
Par exemple, en Swift 3 j'avais:
UITabBarItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName: UIColor.white], for: .selected)
Xcode m'a "aidé" en le changeant en:
UIAppearance.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected)
J'ai pu calmer les erreurs en revenant à moitié, pour:
UITabBarItem.appearance().setTitleTextAttributes([NSAttributedStringKey.foregroundColor: UIColor.white], for: .selected)