UIColor memungkinkan untuk menyesuaikan warna untuk Mode Gelap, memberikan sekumpulan warna semantik "dari Apple", dan juga memungkinkan untuk mengatur tidak hanya warna, tetapi juga pola pengisian ruang, jenis teriakan kepada kami bahwa UIColor sama sekali bukan warna. Mari kita lihat sekilas ruang UIColor ini.
UIColor adalah kelas yang menyimpan data warna dan transparansi. Warna di iOS dapat direpresentasikan dalam ruang warna yang berbeda, yang paling terkenal adalah RGB. Faktanya, warnanya sendiri disimpan di properti cgColor kelas CGColor. Ada beberapa entitas di iOS yang dapat menyimpan informasi warna - masing-masing untuk kerangka kerjanya sendiri:
untuk UIKit ini adalah kelas UIColor,
untuk SwiftUI itu adalah struktur Warna,
untuk Core Graphics ini adalah kelas CGColor,
untuk Core Image ini adalah kelas CIColor
Pada artikel kali ini, saya akan mencoba berbicara tentang kelas UIColor, yang merupakan bagian dari framework UIKit.
Warna sistem
UIKit memiliki beberapa warna standar yang dapat Anda gunakan dalam proyek Anda. Misalnya, UIColor.green hijau atau seringkali hanya .green sudah cukup. Penulisan seperti ini akan menggunakan warna tertentu dengan nilai RGB 0.0, 1.0, 0.0 dan tingkat transparansi 1.0. Namun di UIColor, warna UIColor.systemGreen juga ditentukan. Apa yang membedakannya dari UIColor.green biasa?
Sejak iOS 13.0, Mode Gelap telah muncul. Pengguna dapat memilih dalam pengaturan sistem di mana tema warna lebih nyaman baginya untuk bekerja - dalam tema terang atau gelap. Dan warna hijau untuk mode ini akan sedikit berbeda. Selain itu, untuk persepsi yang nyaman, pengguna dapat memilih mode kontras tinggi yang meningkatkan kontras antara elemen antarmuka dan latar belakang. Dan warna hijau untuk mode ini juga akan berbeda.
, , , 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 , , .
, Dark Light
- XCode Assets Color Set, Dark Light Mode Appearances. , .
:
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, - (. ).
- , . " ", " ".
Meskipun UIColor adalah kelas yang cukup sederhana, UIColor menyediakan kemampuan manajemen warna berdasarkan pengaturan saat ini. Selain itu, seperti yang kita lihat, ini tidak hanya dapat mengatur warna, tetapi juga metode keseluruhan untuk mengisi ruang. Untuk membantu pengembang, Apple menyediakan sekumpulan warna semantik yang menyederhanakan pengembangan dan memungkinkan Anda untuk sedikit mengubah warna elemen antarmuka.