Couleurs en Swift: UIColor

UIColor permet de personnaliser la couleur du mode sombre, donne un ensemble sémantique de couleurs "d'Apple", et permet également de définir non seulement la couleur, mais aussi le motif de remplissage de l'espace, ce qui nous interpelle que UIColor n'est pas du tout une couleur. Jetons un coup d'œil à ces salles UIColor.





UIColor est une classe qui stocke les données de couleur et de transparence. La couleur dans iOS peut être représentée dans différents espaces colorimétriques, dont le plus connu est RVB. En fait, la couleur elle-même est stockée dans la propriété cgColor de la classe CGColor. Il existe plusieurs entités dans iOS qui peuvent stocker des informations de couleur - chacune pour son propre cadre:





  • pour UIKit c'est la classe UIColor, 





  • pour SwiftUI c'est une structure Color, 





  • pour Core Graphics c'est la classe CGColor, 





  • pour Core Image, il s'agit de la classe CIColor





Dans cet article, je vais essayer de parler de la classe UIColor, qui fait partie du framework UIKit.





Couleurs du système

UIKit a des couleurs prédéfinies que vous pouvez utiliser dans votre projet. Par exemple, vert UIColor.green ou souvent juste .green suffit. Une écriture comme celle-ci utilisera une couleur spécifique avec des valeurs RVB de 0,0, 1,0, 0,0 et un niveau de transparence de 1,0. Mais dans UIColor, la couleur UIColor.systemGreen est également définie. En quoi est-ce différent de l'UIColor.green habituel? 





Depuis iOS 13.0, le mode sombre est apparu. L'utilisateur peut choisir dans les paramètres du système dans quel thème de couleur il est plus confortable pour lui de travailler - dans un thème clair ou dans un thème sombre. Et la couleur verte de ces modes sera légèrement différente. De plus, pour une perception confortable, l'utilisateur peut choisir un mode de contraste élevé qui augmente le contraste entre les éléments d'interface et l'arrière-plan. Et la couleur verte pour ce mode sera également différente. 





, , , Apple, , . - , , "system...":





  • systemBlue





  • systemIndigo





  • systemOrange





  • systemPink





  • systemPurple





  • systemRed





  • systemTeal





  • systemYellow





- - , , .





, , - , , ..





  • systemGray





  • systemGray2





  • systemGray3





  • systemGray4





  • systemGray5





  • systemGray6





, , . .





Black White, . .





, . UIKit tintColor, , - , , , UISegmentControl .. - , brandColor primaryBrandColor/secondaryBrandColor. .





, - . , UILabel . , UILabel .red, :





let primaryTextColor = UIColor.red







UILabel :





label.textColor = primaryTextColor







- , . primaryTextColor.





. , .





UIKit

Apple , . , . UIKit .





:





  • label -





  • secondaryLabel -





  • tertiaryLabel -





  • quaternaryLabel -





, , secondaryLabel , tertiaryLabel . 





:





  • systemFill





  • secondarySystemFill





  • tertiarySystemFill





  • quaternarySystemFill





Apple / , , ..





:





  • placeholderText





:





  • systemBackground





  • secondarySystemBackground





  • tertiarySystemBackground





.





:





  • systemGroupedBackground





  • secondarySystemGroupedBackground





  • tertiarySystemGroupedBackground





.grouped .





:





  • separator





  • opaqueSeparator





:





  • link





, :





  • darkText





  • lightText





UIKit , , . 





Apple.





, Dark Light

- XCode Assets Color Set, Dark Light Mode Appearances. , .





Où puis-je trouver les paramètres de couleur dans Assets dans Xcode
Assets XCode

:





let color = UIColor(named: "ColorName")







" " iOS.





- , .





UIColor:





init(dynamicProvider: @escaping (UITraitCollection) -> UIColor)







UITraitCollection - , Dark Light , .. userInterfaceStyle .





:





let color = UIColor { traitCollection -> UIColor in







    switch traitCollection.userInterfaceStyle {







        case .light, .unspecified: return .white







        case .dark: return .black







    }







}







UIColor :





  • HSB, RGB





  • UIColor









  • - UIColor ...





init(patternImage image: UIImage)







UIColor, , . , , UILabel, -  (. ).





- , . " ", " ".





Bien qu'UIColor soit une classe assez simple, elle fournit des capacités de gestion des couleurs basées sur les paramètres actuels. De plus, comme nous l'avons vu, il peut définir non seulement la couleur, mais également la méthode globale de remplissage de l'espace. Pour aider les développeurs, Apple propose un ensemble de couleurs sémantiques qui simplifient le développement et vous permettent de modifier légèrement la couleur des éléments d'interface.








All Articles