12
votes

UIAPPEarance's "Lorsqu'elle n'est pas contenue dans"

Je filme actuellement une bande complexe de uiappearance modificateurs * et ont rencontré un problème.

Mon utilisation de la coutume UIBARBUTON UIBARBUTON CAUSON MFMailCommerViewController Pour se plaindre et arrêter de travailler.

Par conséquent, au lieu d'utiliser uiappearance 's quand méthode pour spécifier des classes qui entraînent une modification de la modification, existe-t-il un moyen d'exclure certaines classes, c'est-à-dire une "quand non contenue dans "?

* Je parle du protocole uiappearance utilisé pour prédéfinir les paramètres d'apparence d'objet dans le délégué de l'application.


0 commentaires

3 Réponses :


14
votes

Vous pouvez utiliser apparenceHhencontainine: code> pour spécifier la modification nil, qui donnera l'apparence par défaut: xxx pré>

à partir de iOS 9 SDK, il y a aussi P >

UIBarButton.appearance().barTintColor = UIColor.redColor()
UIBarButton.appearanceWhenContainedInInstancesOfClasses([MFMailComposerViewController.self]).barTintColor = nil


0 commentaires

0
votes

Pour moi, j'ai utilisé celui-ci qui fonctionne dans iOS 10,

[[UITextField appearanceWhenContainedInInstancesOfClasses:@[[UISearchBar class]]] setTextColor:[UIColor darkGrayColor]];


0 commentaires

0
votes

Ma solution consiste à créer une sous-classe personnalisée de tous les contrôleurs d'affichage du conteneur utilisé dans l'application en tant que Sous-Windows code> UIWindow code> (contrôleur de vue de la racine de la fenêtre ou des contrôleurs de vue présentés), tels que UINAVIGATIONCONTROLLER CODE>, UITABBARCONTROLLER CODE> ou UISPLITVIEWCONTROLLER CODE>.

Disons que l'application utilise uniquement uinavigationController code>. Créez une sous-classe: P>

UIBarButtonItem.appearance(whenContainedInInstancesOf: 
                           [CustomizedNavigationController.self])


0 commentaires