Di Objective-C, kami menggunakan kode ini untuk mengatur kode warna RGB untuk tampilan:
#define UIColorFromRGB(rgbValue)
[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
view.backgroundColor=UIColorFromRGB(0x209624);
Bagaimana saya bisa menggunakan ini di Swift?
Jawaban:
Berikut adalah versi Swift dari fungsi itu (untuk mendapatkan representasi UIColor dari sebuah
UInt
nilai):sumber
Saya ingin meletakkan
tapi itu tidak berhasil.
Jadi saya menggunakan:
Untuk Swift
Jadi ini solusi yang saya temukan.
sumber
Saya sangat menyukai jawaban Nate Cook tetapi saya menginginkan sesuatu yang lebih idiomatis. Saya yakin ini adalah kasus penggunaan yang sangat bagus untuk penginisialisasi praktis melalui ekstensi khusus.
Ini sekarang dapat digunakan seperti ini:
Saya hanya akan merekomendasikan kelas UIKit menambal monyet seperti ini dalam kode klien Anda sendiri, bukan perpustakaan.
sumber
0x
diikuti oleh warna hex apa pun - color-hex.comsumber
Cara termudah untuk menambahkan warna secara terprogram adalah dengan menggunakan ColorLiteral .
Cukup tambahkan properti ColorLiteral seperti yang ditunjukkan pada contoh, Xcode akan meminta Anda dengan seluruh daftar warna yang dapat Anda pilih. Keuntungan melakukannya adalah kode yang lebih sedikit, tambahkan nilai HEX atau RGB . Anda juga akan mendapatkan warna yang baru-baru ini digunakan dari storyboard.
Contoh: self.view.backgroundColor = ColorLiteral
sumber
Jika Anda memulai dari string (bukan hex), ini adalah fungsi yang mengambil string hex dan mengembalikan UIColor.
(Anda dapat memasukkan string hex dengan salah satu format:
#ffffff
atauffffff
)Pemakaian:
Cepat 4:
Cepat 3:
Cepat 2:
Sumber: arshad / gist: de147c42d7b3063ef7bc
sumber
Untuk Xcode 9 , gunakan
UIColor
dengan nilai RGB.Pratinjau:
Lihat dokumentasi Apple tambahan tentang UIColor .
sumber
UIColorFromRGB di Swift 4
sumber
Saya telah menggunakan yang berikut ini dengan cepat.
sumber
solusi untuk format argb:
pemakaian:
sumber
Ini bekerja untuk saya dengan cepat. Coba ini
sumber
menambahkan opsi 3 cepat:
sumber
Anda tidak dapat menggunakan makro yang kompleks seperti
#define UIColorFromRGB(rgbValue)
di swift. Penggantian makro sederhana secara cepat seperti konstanta globalNamun makro kompleks yang menerima parameter tidak didukung oleh swift. Anda bisa menggunakan fungsi sebagai gantinya
Kutipan dari Menggunakan swift dengan kakao dan tujuan C
Periksa jawaban @Nate Cooks untuk versi Swift dari fungsi yang akan digunakan di sini
sumber
Anda dapat menggunakan ini:
sumber
Jawaban Nate Cook benar sekali. Hanya untuk fleksibilitas yang lebih besar, saya menyimpan fungsi berikut dalam paket saya:
Dan inilah cara saya menggunakannya:
Semoga ini bisa membantu. Semuanya diuji dengan Swift 3 / Xcode 8.
sumber
Ini adalah ekstensi yang bagus untuk UIColor. Anda dapat menggunakan nilai enum (hex, string) dan nilai string langsung saat Anda membuat objek UIColor.
Ekstensi yang layak kami dapatkan https://github.com/ioramashvili/UsefulExtensions/blob/master/Extensions.playground/Pages/UIColor.xcplaygroundpage/Contents.swift
sumber
Saya bisa melihat ini sudah dijawab tetapi masih berharap satu liner akan membantu dengan cara yang lebih baik.
Diperbarui:: Perubahan dilakukan sesuai contoh yang dijelaskan oleh Penulis pertanyaan untuk memberikan nilai hex
sumber
Di Swift3, jika Anda memulai dengan warna yang telah Anda pilih, Anda bisa mendapatkan nilai RGB secara online ( http://imagecolorpicker.com ) dan menggunakan nilai tersebut yang didefinisikan sebagai UIColor. Solusi ini mengimplementasikannya sebagai latar belakang:
@Vadym menyebutkan ini di atas di komentar dan penting untuk mendefinisikan CGFloat dengan satu titik desimal
sumber
sumber
Itu dapat dilakukan dengan mudah dengan menggunakan inisialisasi ini
sumber