Warna di Swift: UIColor

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





Apple.





, Dark Light

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





Di mana saya dapat menemukan pengaturan warna di 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, -  (. ).





- , . " ", " ".





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.








All Articles