UIAappearance Tutorial: Pour commencer

Advertisement

Si vous êtes nouveau ici, vous pouvez vous abonner à mon flux RSS ou suivez-moi sur Twitter. Merci de votre visite!

UIAappearance Tutorial: Pour commencer


N'avez-vous pas souhaité que vous pourriez personnaliser vos animaux de compagnie?

Bien que skeuomorphism dans les applications iOS est une chose du passé, cela ne signifie pas que vous êtes limité à l'apparence de stock des contrôles dans votre application iOS.

Bien que vous puissiez développer vos propres contrôles et styles d'application à partir de zéro, Apple vous recommande d'utiliser des contrôles UIKit standard et de profiter des différentes techniques de personnalisation d'iOS. C'est parce que les contrôles UIKit sont très efficaces, et vos personnalisations aux contrôles devraient être principalement à l'épreuve du futur.

Dans ce didacticiel UIAppearance, vous utiliserez certaines techniques de personnalisation de base de l'interface utilisateur pour personnaliser une application Pet Finder simple et la faire ressortir du pack! ......

Commencer

Téléchargez le projet de démarrage pour ce tutoriel ici. L'application a beaucoup de contrôles UIKit standard et semble extrêmement vanille.

Ouvrez le projet et regardez autour de lui pour avoir une idée de sa structure. Construisez et exécutez et vous verrez les principaux éléments de l'interface utilisateur de Pet Finder:

UIAappearance Tutorial: Pour commencer

Il ya une barre de navigation et une barre d'onglet. L'écran principal affiche une liste d'animaux de compagnie; Appuyez sur un animal pour voir quelques détails à ce sujet. Il ya aussi un écran de recherche et - aha! Un écran qui vous permet de sélectionner un thème pour votre application. Cela semble être un bon endroit pour commencer!

Thèmes de soutien

De nombreuses applications ne permettent pas aux utilisateurs de sélectionner un thème, et il n'est pas toujours conseillé d'expédier une application avec un sélecteur de thème. Si vous avez peu de contrôle sur le contenu de votre application s'affiche alors vous pouvez rapidement vous trouver dans une position où l'un de vos thèmes affrontements avec le contenu d'autres ont généré ou partagé. Cependant, vous pouvez tester différents thèmes au cours du développement afin de déterminer lesquels fonctionnent le mieux pour votre application ou bien vous pouvez tester votre application avec vos utilisateurs bêta pour voir quel style est le plus populaire.

Dans ce tutoriel UIAppearance, vous allez créer un certain nombre de thèmes pour votre application que vous pouvez essayer pour voir lequel est le plus esthétiquement agréable.

Sélectionnez Fichier \ Nouveau \ Fichier ... et choisissez iOS \ Source \ File Swift. Cliquez sur Suivant et tapez Thème que le nom du fichier. Enfin cliquez sur Suivant, puis sur Créer. Xcode ouvre automatiquement votre nouveau fichier, qui contient juste une seule ligne de code.

Supprimez la ligne unique et remplacez-la par ce qui suit:

  Import UIKit enum Thème {case Default, Dark, Graphique var mainColor: UIColor {switch self {case .Défaut: return UIColor (rouge: 87.0 / 255.0, vert: 188.0 / 255.0, bleu: 95.0 / 255.0, alpha: 1.0). Dark: retourner UIColor (rouge: 10.0 / 255.0, vert: 10.0 / 255.0, bleu: 10.0 / 255.0, vert: 101.0 / 255.0, bleu: 34.0 / 255.0, alpha: 1.0) 255,0, alpha: 1,0)}}} 

Cela ajoute une énumération aux différents thèmes de votre application. Pour l' instant, tous les thèmes ont seulement un mainColor qui est spécifique à ce thème particulier.

Ensuite, ajoutez la structure suivante:

  Struct ThemeManager {} 

Cela vous permettra d'utiliser un thème dans l'application. Il est encore vide, mais ça changera bientôt!

Ensuite, ajoutez la ligne suivante juste au- dessus de la enum déclaration:

  Let SelectedThemeKey = "SelectedTheme" 

Maintenant, ajoutez la méthode suivante pour ThemeManager :

  Static func currentTheme () -> Thème {if let storedTheme = NSUserDefaults.standardUserDefaults (). ValueForKey (SelectedThemeKey) ?. integerValue {return Thème (rawValue: storedTheme)!  } Else {return .Default}} 

Rien de trop complexe ici: c'est la principale méthode que vous utiliserez pour styliser l'application. Il utilise NSUserDefaults persister le thème actuel, et l' utilise chaque fois que vous lancez votre application.

Pour vérifier que cela fonctionne, AppDelegate.swift ouvrir et ajouter la ligne suivante à la application(_:didFinishLaunchingWithOptions) :

  Println (ThemeManager.currentTheme (). MainColor) 

Construire et exécuter. Vous devriez imprimer ce qui suit sur la console:

  UIDeviceRGBColorSpace 0.94902 0.396078 0.133333 1 

À ce stade, vous avez trois thèmes et peut les gérer via ThemeManager . Maintenant, il est temps d'aller les utiliser dans votre application.

Application de thèmes à vos contrôles

Retour à Theme.swift, ajoutez la méthode suivante pour ThemeManager :

  Static function () functionSelection (theme: Theme) {// 1 NSUserDefaults.standardUserDefaults (). SetValue (theme.rawValue, forKey: SelectedThemeKey) NSUserDefaults.standardUserDefaults (). Synchronize () // 2 let sharedApplication = UIApplication.sharedApplication () sharedApplication. Délégué? .window ??. TintColor = theme.mainColor} 

Voici un aperçu rapide du code ci-dessus:

  1. Vous devez d' abord persistez le thème choisi en utilisant NSUserDefaults .
  2. Ensuite , vous obtenez votre thème (sélectionné) en cours et d' appliquer la couleur principale du tintColor propriété de la fenêtre de votre application. Vous en apprendrez plus sur tintColor dans un instant.

Maintenant, la seule chose que vous devez faire est d'appeler cette méthode. Il n'y a pas de meilleur endroit que dans AppDelegate.swift.

Remplacer le println() déclaration que vous avez ajouté précédemment avec les éléments suivants:

  Let theme = ThemeManager.currentTheme () ThemeManager.applyTheme (thème) 

Construire et exécuter. Vous verrez que votre nouvelle application semble décidément plus verte:

UIAappearance Tutorial: Pour commencer


Naviguez dans l'application; Il ya des accents verts partout! Mais vous n'avez modifié aucun de vos contrôleurs ou vues. Quel est ce noir - la magie ?! - er, vert ......

Appliquer des couleurs de teinte

Depuis iOS 7, UIView a exposé la tintColor propriété, qui est souvent utilisé pour définir la couleur primaire indiquant la sélection et l' interactivité des états pour les éléments d'interface à travers une application.

Lorsque vous spécifiez une teinte pour une vue, la teinte est automatiquement propagée à tous les sous-aperçus dans la hiérarchie de vue de cette vue. Parce que UIWindow hérite de UIView , vous pouvez spécifier une couleur de teinte pour l'ensemble de l' application en définissant de la fenêtre tintColor , ce qui est exactement ce que vous avez fait dans applyTheme() ci - dessus.

Cliquez sur l'icône d'engrenage dans le coin supérieur gauche de votre application; une vue de tableau avec segmentés lames de contrôle, mais lorsque vous sélectionnez un thème différent et appuyez sur Appliquer, rien ne change. Il est temps de régler ça.

Ouvrez SettingsTableViewController.swift et ajoutez ces lignes à applyTheme() , juste au- dessus de dismiss() :

  Si let selectedTheme = Thème (rawValue: themeSelector.selectedSegmentIndex) {ThemeManager.applyTheme (selectedTheme)} 

Ici , vous appelez la méthode que vous avez ajouté à ThemeManager , qui définit le thème choisi mainColor sur la tintColor propriété de la racine UIWindow instance.

Ensuite, ajoutez la ligne suivante au bas de viewDidLoad() pour sélectionner le thème a persisté à NSUserDefaults lorsque le contrôleur de vue est d' abord chargé:

  ThemeSelector.selectedSegmentIndex = ThemeManager.currentTheme (). RawValue 

Construire et exécuter. Appuyez sur le bouton Paramètres, sélectionnez foncé, puis appuyez sur Appliquer. La teinte de votre application va changer de vert à orange à droite devant vos yeux:

UIAappearance Tutorial: Pour commencer


Lecteurs Eagle-eyed probablement remarqué ces couleurs ont été définies dans mainColor() , en ThemeType .

Mais attendez, vous avez sélectionné des Ténèbres, et cela ne semble pas sombre. Pour que cet effet fonctionne, vous devrez personnaliser quelques autres choses.

Personnalisation de la barre de navigation

Ouvrez Theme.swift et ajoutez les deux méthodes suivantes à Theme :

  Var barStyle: UIBarStyle {switch self {cas .Default, .Graphical: return .Carte par défaut .Dark: return .Black}} var navigationBackgroundImage: UIImage?  {Return self == .Graphical?  UIImage (nommé: "navBackground"): nil} 

Ces méthodes renvoient simplement un style de barre approprié et une image d'arrière-plan pour la barre de navigation pour chaque thème.

Ensuite, ajoutez les lignes suivantes au bas de applyTheme() :

  UINavigationBar.appearance (). BarStyle = theme.barStyle UINavigationBar.appearance (). SetBackgroundImage (theme.navigationBackgroundImage, forBarMetrics: .Default) 

Okay - pourquoi cela fonctionne ici, et non plus tôt lorsque vous définissez barStyle sur votre UINavigationBar instance?

UIKit a un protocole informel appelé UIAppearance que la plupart de ses contrôles sont conformes à. Lorsque vous appelez l' appearance() sur UIKit classes- pas des cas -il renvoie un UIAppearance proxy. Lorsque vous modifiez les propriétés de ce proxy, toutes les instances de cette classe obtiennent automatiquement la même valeur. C'est très pratique car vous n'avez pas à manuellement chaque contrôle de style après qu'il a été instancié.

Construire et exécuter. Sélectionnez le thème sombre et la barre de navigation devrait maintenant être beaucoup plus sombre:

UIAappearance Tutorial: Pour commencer


Cela semble un peu mieux, mais vous avez encore du travail à faire.

Ensuite, vous personnaliserez l'indicateur arrière. IOS utilise un chevron par défaut, mais vous pouvez coder quelque chose de beaucoup plus excitant! ......

Personnalisation de la barre de navigation

Cette modification s'applique à tous les thèmes, de sorte que vous ne devez ajouter les lignes suivantes à applyTheme() dans Themes.swift:

  UINavigationBar.appearance () backIndicatorImage = UIImage (nommé: "backArrowMask") UINavigationBar.appearance () backIndicatorTransitionMaskImage = UIImage 

Ici, vous définissez simplement l'image et l'image du masque de transition à utiliser comme indicateur arrière.

Construire et exécuter. Appuyez sur l'un des animaux et vous devriez voir le nouvel indicateur de retour:

UIAappearance Tutorial: Pour commencer


Images.xcassets Ouvrir et trouver l'image flèchearrière dans le groupe de navigation. L'image est tout noir, mais dans votre application, il prend la couleur de teinte de votre fenêtre et il fonctionne simplement.

UIAappearance Tutorial: Pour commencer

Mais comment iOS peut-il simplement changer la couleur de l'élément du bouton de barre, et pourquoi ne le fait-il pas partout?

Il s'avère que les images en iOS ont trois modes de rendu:

  • Original: Toujours utiliser l'image "tel quel" avec ses couleurs d' origine.
  • Modèle: Ignorer les couleurs, et il suffit d' utiliser l'image comme un pochoir. Dans ce mode, iOS utilise uniquement la forme de l'image et les couleurs de l'image elle-même avant de le rendre à l'écran. Donc, quand un contrôle a une teinte de couleur, iOS prend la forme de l'image que vous fournissez et utilise la teinte de couleur pour la colorer.
  • Automatique: En fonction du contexte dans lequel vous utilisez l'image, le système décide si elle doit dessiner l'image "original" ou "template". Pour les éléments tels que les indicateurs de retour, les éléments du bouton de barre de navigation et les images de barre d'onglets, iOS ignore les couleurs d'image par défaut, à moins que vous ne modifiez le mode de rendu.

Retournez à l'application, appuyez sur l' un des animaux de compagnie et appuyez sur Adopter. Observez attentivement l'animation de l'indicateur arrière dans la barre de navigation. Pouvez-vous voir le problème?

UIAappearance Tutorial: Pour commencer

Lorsque le texte Retour transitions vers la gauche, il chevauche l'indicateur et semble assez mauvaise:

Pour résoudre ce problème, vous devez modifier l'image du masque de transition.

Mettre à jour la ligne où vous définissez backIndicatorTransitionMaskImage dans applyTheme() , en Themes.swift, à ce qui suit:

  UINavigationBar.appearance (). BackIndicatorTransitionMaskImage = UIImage (nommé: "backArrow") 

Construire et exécuter. Encore une fois touchez l' un des animaux de compagnie et puis appuyez sur Adopter. Cette fois, la transition semble beaucoup mieux:

UIAappearance Tutorial: Pour commencer

Le texte n'est plus coupé et semble passer sous l'indicateur. Alors, qu'est-ce qui se passe ici?

Alors que iOS utilise tous les pixels non-transparents de l'image de retour de l' indicateur pour dessiner l'indicateur, il fait quelque chose entièrement différent avec l'image de masque de transition: elle masque l'indicateur avec les pixels non-transparents de l'image de masque de transition de sorte que lorsque le texte Se déplace vers la gauche, l'indicateur n'est visible que dans ces zones.

Dans la mise en œuvre initiale, vous avez fourni une image qui couvrait toute la surface de l'indicateur arrière afin que le texte reste visible pendant la transition. Mais maintenant, vous utilisez l'image indicatrice elle-même comme masque, mais le texte a disparu au bord droit du masque, pas sous l'indicateur proprement dit.

Regardez l'image de l'indicateur et la version "fixe" du masque dans votre catalogue d'actifs d'image; Vous verrez qu'ils s'alignent parfaitement les uns avec les autres:

UIAappearance Tutorial: Pour commencer

La forme noire est votre indicateur arrière et la forme rouge est votre masque. Vous voulez que le texte ne soit visible que lorsqu'il passe sous la zone rouge et caché partout ailleurs.

Modifier la dernière ligne de applyTheme() une fois de plus, cette fois pour utiliser le masque mis à jour:

  UINavigationBar.appearance (). BackIndicatorTransitionMaskImage = UIImage (nommé: "backArrowMaskFixed") 

Construire et exécuter. Pour la dernière fois, appuyez sur l' un des animaux de compagnie et puis appuyez sur Adopter. Vous verrez que le texte disparaît sous l'image, comme vous l'aviez prévu:

UIAappearance Tutorial: Pour commencer

Maintenant que votre barre de navigation est pixel parfait, il est temps de donner à la barre d'onglet un amour très nécessaire.

Personnalisation de l'onglet Barre

Toujours dans Theme.swift, ajoutez les propriétés suivantes Theme :

  Var tabBarBackgroundImage: UIImage?  {Return self == .Graphical?  UImage (nom: "tabBarBackground"): nil} var backgroundCouleur: UIColor {switch self {case .Default, .Graphical: return UIColor (blanc: 0.9, alpha: 1.0) cas. 1.0)}} var secondaryColor: UIColor {switch self {case .Default: return UIColor (rouge: 242.0 / 255.0, vert: 101.0 / 255.0, bleu: 34.0 / 255.0, alpha: 1.0) 34.0 / 255.0, vert: 128.0 / 255.0, bleu: 66.0 / 255.0, alpha: 1.0) cas .Graphique: retour UIColor (rouge: 140.0 / 255.0, vert: 50.0 / 255.0, bleu: 48.0 / 255.0, alpha: 1.0)} } 

Ces propriétés fournissent des images d'arrière-plan appropriées, des couleurs d'arrière-plan et des couleurs secondaires pour chaque thème.

Pour appliquer ces styles, ajoutez les lignes suivantes à applyTheme() .

  UITabBar.appearance () barStyle = theme.barStyle UITabBar.appearance (). BackgroundImage = theme.tabBarBackgroundImage let tabIndicator = UIImage (nommé: "tabBarSelectionIndicator") ?. imageWithRenderingMode (.AlwaysTemplate) let tabResizableIndicator = tabIndicator? .resizableImageWithCapInsets (UIEdgeInsets Top: 0, left: 2.0, bottom: 0, right: 2.0)) UITabBar.appearance (). SelectionIndicatorImage = tabResizableIndicator 

Réglage de la barStyle et backgroundImage devrait être familier maintenant; il a fait exactement la même que vous avez fait pour UINavigationBar précédemment.

Dans les trois dernières lignes de code ci - dessus, vous récupérez une image de l' indicateur à partir du catalogue de l' actif et de définir son mode de rendu à .AlwaysTemplate . Il s'agit d'un exemple d'un contexte dans lequel iOS n'utilise pas automatiquement le mode de rendu du modèle.

Enfin, vous créez une image redimensionnable et la définir comme de la barre d'onglets selectionIndicatorImage .

Construire et exécuter. Vous verrez votre nouvelle barre d'onglets:

UIAappearance Tutorial: Pour commencer


Le thème sombre commence à regarder plus, bien, sombre! ......

Voir la ligne sous l'onglet sélectionné? C'est votre image indicateur. Bien que ce soit seulement 6 points de haut et 49 points de large, iOS étire cette à la pleine largeur de l'onglet au moment de l'exécution.

La section suivante traite des images redimensionnables et de leur fonctionnement.

Personnalisation d'un contrôle segmenté

Un élément qui n'a pas encore changé est le contrôle segmenté qui montre le thème actuellement sélectionné. Il est temps d'introduire ce contrôle dans le merveilleux monde de la thématique.

Ajoutez le code suivant au bas de applyTheme() dans Theme.swift:

  Let controlBackground = UIImage (nommé: "controlBackground")?  .imageWithRenderingMode (.AlwaysTemplate) .resizableImageWithCapInsets (UIEdgeInsets (top: 3, left: 3, bottom: 3, right: 3)) let controlSelectedBackground = UIImage (nommé: "controlSelectedBackground")?  .ImageWithRenderingMode (.AlwaysTemplate) .resizableImageWithCapInsets (UIEdgeInsets (top: 3, left: 3, bottom: 3, right: 3)) UISegmentedControl.appearance (). SetBackgroundImage (controlBackground, forState: .Normal, barMetrics: .Default) UISegmentedControl. Apparence (). SetBackgroundImage (controlSelectedBackground, forState: .Selected, barMetrics: .Default) 

Pour comprendre le code ci - dessus, d' abord jeter un coup d' oeil à l'image controlBackground dans votre catalogue d'actifs. L'image peut être minuscule, mais iOS sait exactement comment l'utiliser pour dessiner les frontières de votre UISegmentedControl , comme il a été pré-tranché et est redimensionnable.

Qu'est-ce que signifie tranchés? Jetez un oeil au modèle grossi suivant:

UIAappearance Tutorial: Pour commencer

Il y a quatre carrés de 3 × 3, un dans chaque coin. Ces carrés sont laissés intacts lors du redimensionnement de l'image, mais les pixels gris s'allongent horizontalement et verticalement selon les besoins.

Dans votre image, tous les pixels sont noirs et prennent la teinte du contrôle. Vous demandez iOS comment étirer l'image en utilisant UIEdgeInsets() et passé 3 pour le haut, à gauche, en bas et à droite des paramètres depuis vos coins sont 3 × 3.

Construire et exécuter. Appuyez sur l'icône d'engrenage en haut à gauche et vous verrez que le UISegmentedControl reflète maintenant votre nouveau style:

UIAappearance Tutorial: Pour commencer

Les coins arrondis sont allés et ont été remplacés par vos 3 × 3 coins carrés.

Maintenant que vous avez teinté et appelé votre contrôle segmenté, il ne reste plus qu'à teinter les contrôles restants.

Fermez l'écran des paramètres de l'application et appuyez sur la loupe dans le coin supérieur droit; vous verrez un autre contrôle segmenté qui a également vos personnalisations, avec un UIStepper , UISlider et UISwitch qui doivent encore être le thème.

Prenez votre pinceau et déposez les chiffons - vous allez peindre! ......

Personnalisation des Steppers, des curseurs et des commutateurs

Pour modifier les couleurs du stepper, ajoutez les lignes suivantes à applyTheme() dans Theme.swift:

  UIStepper.appearance () setBackgroundImage (controlBackground, forState: .Normal) UIStepper.appearance (). SetBackgroundImage (controlBackground, forState: .Disabled) UIStepper.appearance (). SetBackgroundImage (controlBackground, forState: .Highlighted) UIStepper.appearance () .setDecrementImage (UIImage (nommé: "morePaws"), forState: .Normal) UIStepper.appearance () 

Vous avez utilisé la même image redimensionnable que vous avez fait pour UISegmentedControl ; la seule différence ici est que UIStepper segments deviennent handicapés quand ils atteignent leurs valeurs minimales ou maximales, donc vous avez besoin de spécifier une image pour ce cas aussi. Pour simplifier, vous réutilisez la même image.

Cela ne change pas seulement la couleur du stepper, mais vous obtenez également des boutons de belles images au lieu de + ennuyeux et - symboles.

Construire et exécuter. Open Search pour voir comment le stepper a changé:

UIAappearance Tutorial: Pour commencer

UISlider et UISwitch ont besoin d' un thème lovin 'aussi.

Ajouter le code suivant à applyTheme() :

  UISlider.appearance (): setImageTime (): setImage ():. 0.0, bottom: 0, right: 6.0)), forState: .Normal) UISlider.appearance (). SetMinimumTrackImage (UIImage (named: "minimumTrack")? .imageWithRenderingMode (.AlwaysTemplate) .resizableImageWithCapInsets (UIEdgeInsets (top: 0, left : 6.0, bottom: 0, right: 0)), forState: .Normal) UISwitch.appearance (). OnTintColor = theme.mainColor.colorWithAlphaComponent (0.3) UISwitch.appearance (). ThumbTintColor = theme.mainColor 

UISlider a trois points principaux de personnalisation: le pouce du curseur, la piste minimum et la piste maximale.

Le pouce utilise une image de votre catalogue d'actifs, tandis que la piste maximale utilise une image redimensionnable en mode de rendu d'origine pour qu'elle reste noire quel que soit le thème. La piste minimale utilise également une image redimensionnable, mais vous avez utilisé le mode de rendu du modèle pour hériter de la teinte du modèle.

Vous avez modifié UISwitch en définissant thumbTintColor à la couleur principale et onTintColor comme une version légèrement plus claire de la couleur principale t cogner le contraste entre les deux.

Construire et exécuter. Touchez Rechercher et votre curseur et le commutateur doivent apparaître comme suit:

UIAappearance Tutorial: Pour commencer

Comme vous l' avez vu avec UISegmentedControl , le proxy d'aspect personnalise toutes les instances d'une classe. Mais parfois , vous ne voulez pas une apparence globale pour un contrôle - dans ces cas, vous pouvez personnaliser une seule instance d'un contrôle.

Personnalisation d'une instance unique

Ouvrez SearchTableViewController.swift et ajoutez les lignes suivantes à viewDidLoad() :

  SpeciesSelector.setImage (UIImage (named: "dog"), forSegmentAtIndex: 0) speciesSelector.setImage (UIImage (named: "cat"), forSegmentAtIndex: 1) 

Ici, vous définissez simplement l'image pour chaque segment dans le sélecteur d'espèces.

Construire et exécuter. Open Search et vous verrez le sélecteur des espèces segmenté ressemble à ceci:

UIAappearance Tutorial: Pour commencer

IOS a inversé les couleurs sur l'image du segment sélectionné sans aucun travail de votre part; cela est parce que les images sont automatiquement rendus en mode Modèle.

Qu'en est-il de changer sélectivement la police de caractères sur vos contrôles? C'est facile aussi.

Ouvrez PetTableViewController.swift et ajoutez les deux lignes suivantes au bas de viewWillAppear() :

  View.backgroundColor = ThemeManager.currentTheme (). BackgroundColor tableView.separatorColor = ThemeManager.currentTheme (). SecondaryColor 

Ensuite, ajoutez la ligne suivante à la fin de tableView(_:cellForRowAtIndexPath:) juste avant votre retour de la méthode:

  Cell.textLabel! .font = UIFont (nom: "Zapfino", format: 14.0) 

Cela change simplement la police sur l'étiquette qui représente le nom de l'animal.

Construire et exécuter. Comparez les avant et après:

UIAappearance Tutorial: Pour commencer

L'image ci-dessous montre les résultats avant et après de l'écran de recherche; Je pense que vous serez d' accord que la nouvelle version est beaucoup moins vanille et beaucoup plus intéressant que l'original:

UIAappearance Tutorial: Pour commencer

Où aller en partant d'ici?

Vous pouvez télécharger le projet terminé avec tous les réglages de ce didacticiel ici.

En plus des réglages que vous avez déjà faites, en Objective-C vous pouvez spécifier certaines personnalisations à appliquer aux commandes seulement quand ils sont contenus dans d' autres commandes d'une classe spécifique. Par exemple, vous pouvez appliquer des personnalisations à UITextField , mais seulement lorsqu'elles sont contenues dans un UINavigationBar .

Malheureusement, vous ne pouvez pas utiliser ce type de personnalisation dans Swift, pour le moment. Les bonnes nouvelles sont que iOS 9 ajoutera cette fonctionnalité, et je vais mettre à jour ce tutoriel en conséquence une fois qu'il est libéré.

J'espère que vous avez apprécié ce tutoriel UIAppearance et avez appris comment il peut être facile de modifier votre interface utilisateur. Si vous avez des commentaires ou des questions sur ce didacticiel, joignez-vous à la discussion du forum ci-dessous!