Swiftの色:UIColor

UIColorを使用すると、ダークモードの色をカスタマイズしたり、「Apple製」のセマンティックな色のセットを提供したり、色だけでなく、スペースを埋めるパターンも設定したりすることができます。そのUIColorはまったく色ではありません。これらのUIColorホールを簡単に見てみましょう。





UIColorは、色と透明度のデータを格納するクラスです。iOSの色は、さまざまな色空間で表すことができます。その中で最も有名なのはRGBです。実際、色自体はCGColorクラスのcgColorプロパティに格納されています。iOSには、色情報を保存できるエンティティがいくつかあります。それぞれが独自のフレームワーク用です。





  • UIKitの場合はUIColorクラスです。 





  • SwiftUIの場合、これはカラー構造です。 





  • コアグラフィックスの場合、これはCGColorクラスです。 





  • CoreImageの場合これはCIColorクラスです





この記事では、UIKitフレームワークの一部であるUIColorクラスについて説明します。





システムカラー

UIKitには、プロジェクトで使用できるいくつかの定義済みの色があります。たとえば、緑のUIColor.greenまたは多くの場合は.greenだけで十分です。このように書くと、RGB値が0.0、1.0、0.0、透明度レベルが1.0の特定の色が使用されます。ただし、UIColorでは、色UIColor.systemGreenも定義されています。通常のUIColor.greenとどう違うのですか? 





iOS 13.0以降、ダークモードが登場しました。ユーザーは、システム設定で、明るいテーマと暗いテーマのどちらのカラーテーマで作業するのがより快適かを選択できます。また、これらのモードの緑色はわずかに異なります。さらに、快適な知覚のために、ユーザーは、インターフェイス要素と背景の間のコントラストを高める高コントラストモードを選択できます。また、このモードの緑色も異なります。 





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





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





- , . " ", " ".





UIColorはかなり単純なクラスですが、現在の設定に基づいたカラーマネジメント機能を提供します。さらに、私たちが見たように、それは色だけでなく、スペースを埋める全体的な方法も設定することができます。開発者を支援するために、Appleは、開発を簡素化し、インターフェイス要素の色をわずかに変更できるようにする一連のセマンティックカラーを提供しています。








All Articles