Saya membuat elemen khusus di aplikasi saya dan ingin mencocokkan tampilan dan nuansa iOS baru. iOS 7 memperkenalkan kepada kami warna biru terang yang sangat umum, warna default atau warna untuk beberapa elemen, termasuk tombol sistem, kontrol tersegmentasi, dll. Mereka telah membuatnya mudah untuk memilih warna menggunakan IB, seperti terlihat di sini:
Namun, saya belum menemukan cara mengakses warna dengan mudah secara terprogram. Saya memeriksa dokumentasi UIColor , dan sepertinya tidak ada accessor untuk warna sistem biru di kelas itu sendiri.
Inilah pertanyaan saya: apakah ada pengakses sederhana untuk warna ini? [UIColor ?]
atau semacamnya? Jika tidak, apakah seseorang tahu nilai RGB yang tepat untuk warna itu?
UIView().tintColor
, tetapi sebenarnya Anda tidak bisa. Tidak yakin pada titik mana UIView mendapatkan set warna warna ...UIWindow
atau mungkin tampilan root-nya memiliki versi asli. Tampilan mewarisi warna warna mereka dari tampilan yang lebih tinggi di rantai responden, tetapi dalam contoh Anda tampilan baru tidak memiliki superview.self.view.tintColor
dari dalamUIViewController.viewDidLoad()
memberi biru kanan.Tampaknya begitu
[UIColor colorWithRed:0.0 green:122.0/255.0 blue:1.0 alpha:1.0]
.sumber
UIColor(red: 0.0, green: 122.0/255.0, blue: 1.0, alpha: 1.0)
iOS 7 warna biru default adalah
R:0.0 G:122.0 B:255.0
sumber
0x007aff
Menurut dokumentasi untuk UIButton:
Dengan asumsi Anda tidak mengubah tintColor sebelum meraih nilai default, Anda dapat menggunakan:
sumber
sharedApplication()
tidak punyakeyWindow
dengantintColor
Berikut adalah metode sederhana untuk mendapatkan warna warna sistem default:
sumber
dispatch_once
cukup rendah dan merupakan satu jika memeriksa dalam kasus umum.UIColor
pada beberapa thread. Membungkusnya dalamdispatch_once
memungkinkan untuk mengambil warna ini dengan aman di utas apa pun. Dan sekali lagi, biaya overhead sangat rendah.Kode Warna Hex
dan Anda memerlukan perpustakaan ini https://github.com/thii/SwiftHEXColors
ps. iOS, Swift
sumber
cepat 4 cara:
sumber
Ekstensi ini memberi Anda warna biru sistem asli.
MEMPERBARUI
Harap lupakan apa yang saya tulis di atas, baru tahu - ada ekstensi asli dengan warna sistem yang telah kami cari, termasuk sistem biru :
Anda dapat menggunakannya secara langsung:
sumber
static let system = UIView().tintColor!
masih jauh lebih baik daripada varian Anda.Dapatkan warna secara otomatis dengan menggunakan kode ini:
sumber
The
UIWindow.tintColor
Metode tidak bekerja untuk saya di iOS8 (itu masih hitam), jadi saya harus melakukan ini:Ini memberi warna biru yang tepat terlihat pada a
UIBarButtonItem
sumber
Dari iOS 7 ada API dan Anda bisa mendapatkan (dan mengatur) warna warna dengan:
Atau jika Anda membutuhkan CGColor:
sumber
Dalam banyak kasus apa yang Anda butuhkan adalah adil
atau untuk cepat
sumber
saat mengatur warna Anda dapat mengatur warna seperti ini
sumber
/255.0
denganrgb
nilai masing-masing ?Menambahkan kategori ke UIColor dengan cara berikut akan membuatnya tersedia untuk Anda kapan pun Anda membutuhkannya atau bahkan mengubah definisi di seluruh kode Anda:
Setelah Anda mengimpor Kategori dalam kode Anda, Anda dapat memanggil warna dengan menggunakan:
sumber
blue
kered
dalam+ (instancetype)iOS7redColor;