Saya ingin menambahkan ikon / gambar di UITextField. Ikon / gambar harus diserahkan ke placeholder.
Saya mencoba ini:
var imageView = UIImageView();
var image = UIImage(named: "email.png");
imageView.image = image;
emailField.leftView = imageView;
Terima kasih.
emailField.leftView = UIImageView(image: UIImage(named: "search"))
:)@IBDesignable
kita dapat melakukan ini dengan cara yang elegan seperti dalam contoh ini: stackoverflow.com/a/51841433/8238512Jawaban:
Coba tambahkan
emailField.leftViewMode = UITextFieldViewMode.Always
(Default
leftViewMode
adalahNever
)Jawaban yang Diperbarui untuk Swift 4
sumber
UITextFieldViewMode.Always
)? Apakah Anda tahu apa yang tidak berhasil? (misalnya apakah itu dikompilasi?)emailTextField
apakah itu benar-benar berubah? Dan apakah Anda yakin gambar itu ada? Misalnya, buat UIImageView lain dan muat UIImageViewimage
itu untuk memverifikasi bahwa itu berfungsi.imageView1.frame = CGRect(x: 5, y: 0, width: userName.frame.height, height: userName.frame.height) view.addSubview(imageView1)
Sahil memiliki jawaban yang bagus dan saya ingin mengambilnya dan mengembangkannya menjadi @IBDesignable sehingga pengembang dapat menambahkan gambar ke UITextFields mereka di Storyboard.
Swift 4.2.0
Apa yang terjadi disini?
Dapat dirancang ini memungkinkan Anda untuk:
Catatan
Dapat didesain di Papan Cerita
Saat Runtime
sumber
Saya hanya ingin menambahkan beberapa hal lagi di sini:
Jika Anda ingin menambahkan gambar di
UITextField
sisi kiri gunakanleftView
propertiUITextField
CATATAN: Jangan lupa untuk mengatur
leftViewMode
keUITextFieldViewMode.Always
dan untuk hakrightViewMode
keUITextFieldViewMode.Always and
default adalahUITextFieldViewModeNever
untuk mis
Untuk menambahkan gambar di sisi kiri
Untuk menambahkan gambar di sisi kanan
CATATAN: beberapa hal yang perlu Anda perhatikan saat menambahkan gambar di
UITextField
sisi kiri atau kanan.Jangan lupa berikan bingkai
ImageView
yang akan Anda tambahkanUITextField
biarkan imageView = UIImageView (bingkai: CGRect (x: 0, y: 0, lebar: 20, tinggi: 20))
jika background gambar Anda putih maka gambar tidak akan terlihat
UITextField
jika Anda ingin menambahkan gambar ke posisi tertentu yang perlu Anda tambahkan
ImageView
sebagai subviewUITextField
.Perbarui Untuk Swift 3.0
@Mark Moeykens dengan indah mengeluarkannya dan menjadikannya @IBDesignable .
Saya memodifikasi dan menambahkan beberapa fitur lagi (tambahkan Garis Bawah dan padding untuk gambar kanan) di sini.
CATATAN jika Anda ingin menambahkan gambar di sisi kanan, Anda dapat memilih
Force Right-to-Left
opsi disemantic
dalam pembuat antarmuka (Tapi untuk pengisi gambar kanan tidak akan berfungsi sampai Anda mengganti metode rightViewRect).Saya telah memodifikasi ini dan dapat mengunduh sumber dari sini ImageTextField
sumber
Cara lain, terinspirasi dari postingan sebelumnya membuat extension.
Kita bisa meletakkan gambar di kanan atau di kiri
Penggunaan:
Nikmati :)
sumber
Untuk membuat padding, saya suka menempatkan gambar di dalam tampilan kontainer. Anda dapat menghapus warna latar belakang setelah Anda puas dengan penempatan ikon tersebut.
sumber
untuk Swift 3.0 tambahkan gambar di sisi kiri textField
sumber
Cepat 5
Saya telah membuat ekstensi
Hasil
sumber
2020 - solusi yang masuk akal
Mengenai kegilaan dari Apple ini.
Ini mungkin cara yang "paling jelas", paling sederhana, untuk melakukannya:
Pertama, Anda harus memindahkan teks dengan benar.
Catat QA penting ini: https://stackoverflow.com/a/27066764/294884
melanjutkan, sekarang kita harus membuat dan memindahkan gambar kiri:
Ini sepertinya tentang cara yang paling jelas dan paling dapat diandalkan untuk melakukannya.
sumber
Saya membuat IBDdesainable sederhana. Gunakan sesuka Anda. Cukup buat UITextField Anda mengonfirmasi ke kelas ini.
sumber
Cara lain untuk mengatur ikon placeholder & mengatur padding ke TextField.
sumber
Swift 3.1.0
sumber
Anda dapat meletakkan fungsi ini di file global Anda atau di atas kelas Anda sehingga Anda dapat mengaksesnya di seluruh aplikasi. Setelah prosedur ini, Anda dapat memanggil fungsi ini sesuai kebutuhan Anda dalam aplikasi.
sumber
Mengapa Anda tidak menggunakan pendekatan termudah. Untuk kebanyakan kasus, Anda ingin menambahkan ikon seperti font mengagumkan ... Cukup gunakan library font awesome dan akan semudah ini menambahkan ikon ke bidang teks seperti ini:
Anda harus menginstal dulu pustaka cepat ini: https://github.com/Vaberer/Font-Awesome-Swift
sumber
Ini adalah versi modifikasi dari jawaban Mark Moeykens dengan tambahan padding antara gambar dan teks dan ukuran gambar yang dapat disesuaikan jika seseorang membutuhkannya.
Cepat 4
sumber
Cepat 5
Mirip dengan @Markus, tetapi di Swift 5 :
sumber
SwiftUI
Hasil
sumber
Menggunakan ekstensi di Swift4, Kita dapat dengan mudah meletakkan gambar di kanan atau di kiri dengan padding ke TextField.
Gunakan kode untuk pengaturan gambar kiri: -
Keluaran :)
sumber