Farben in Swift: UIColor

UIColor ermöglicht es, die Farbe für den Dunkelmodus anzupassen, gibt einen semantischen Satz von Farben "von Apple" und ermöglicht es, nicht nur die Farbe, sondern auch das Muster des Füllens des Raums festzulegen, was uns anruft dass UIColor überhaupt keine Farbe ist. Werfen wir einen kurzen Blick auf diese UIColor-Hallen.





UIColor ist eine Klasse, die Farb- und Transparenzdaten speichert. Farbe in iOS kann in verschiedenen Farbräumen dargestellt werden, von denen der bekannteste RGB ist. Tatsächlich wird die Farbe selbst in der Eigenschaft cgColor der CGColor-Klasse gespeichert. In iOS gibt es mehrere Entitäten, die Farbinformationen speichern können - jede für ihr eigenes Framework:





  • für UIKit ist es die UIColor-Klasse, 





  • für SwiftUI ist es eine Farbstruktur, 





  • Für Core Graphics ist dies die CGColor-Klasse. 





  • Für Core Image ist dies die CIColor-Klasse





In diesem Artikel werde ich versuchen, über die UIColor-Klasse zu sprechen, die Teil des UIKit-Frameworks ist.





Systemfarben

UIKit verfügt über einige vordefinierte Farben, die Sie in Ihrem Projekt verwenden können. Zum Beispiel reicht grünes UIColor.green oder oft nur .green aus. Beim Schreiben auf diese Weise wird eine bestimmte Farbe mit RGB-Werten von 0,0, 1,0, 0,0 und einer Transparenzstufe von 1,0 verwendet. In UIColor wird jedoch auch die Farbe UIColor.systemGreen definiert. Wie unterscheidet es sich vom üblichen UIColor.green? 





Seit iOS 13.0 ist der Dunkle Modus erschienen. Der Benutzer kann in den Systemeinstellungen auswählen, in welchem ​​Farbthema er bequemer arbeiten kann - in einem hellen oder in einem dunklen Thema. Die grüne Farbe für diese Modi unterscheidet sich geringfügig. Darüber hinaus kann der Benutzer für eine komfortable Wahrnehmung einen kontrastreichen Modus wählen, der den Kontrast zwischen den Oberflächenelementen und dem Hintergrund erhöht. Und die grüne Farbe für diesen Modus wird auch anders sein. 





, , , 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. , .





Wo finde ich Farbeinstellungen in Assets in 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, -  (. ).





- , . " ", " ".





Obwohl UIColor eine relativ einfache Klasse ist, bietet es Farbmanagementfunktionen basierend auf den aktuellen Einstellungen. Darüber hinaus kann, wie wir gesehen haben, nicht nur die Farbe, sondern auch die Gesamtmethode zum Ausfüllen des Raums festgelegt werden. Um Entwicklern zu helfen, bietet Apple eine Reihe semantischer Farben an, die die Entwicklung vereinfachen und es Ihnen ermöglichen, die Farbe von Oberflächenelementen geringfügig zu ändern.








All Articles