Menggunakan Xcode 9.2 tidak ada solusi di atas yang bekerja untuk apa yang saya cari.
Saya sedang mencari solusi yang akan memungkinkan saya mengatur .normal
dan .selected
UIControlState
gambar di dalam storyboard untuk mode rendering asli mereka , tetapi, di dalam file Swift, tidak ada string string yang seharusnya ada mengenai nama-nama gambar.
Pada dasarnya, di dalam kode Anda, Anda akan mendapatkan gambar yang Anda atur di dalam storyboard Anda untuk .normal
negara dan render kembali sebagai .alwaysOriginal
(Sama untuk .selected
negara), lalu, Anda akan mengatur gambar itu (yang sekarang diterjemahkan sebagai asli dan tidak akan terpengaruh oleh warna) untuk negara bagian yang relevan ( .normal
dan .selected
) Anda UIButton
.
Ini dia:
// Get your .normal image (you set via your storyboard) and render it as original
let unselectedImage = yourButton.image(for: .normal)?.withRenderingMode(.alwaysOriginal)
// Set your normal image but this time rendered as original
yourButton.setImage(unselectedImage, for: .normal)
// Same for selected state
let selectedImage = yourButton.image(for: .selected)?.withRenderingMode(.alwaysOriginal)
yourButton.setImage(selectedImage, for: .selected)
Dengan cara ini Anda dapat mengatur status gambar tombol Anda dan jika nama gambar akan berubah, itu tidak akan mempengaruhi kode Anda.