Saya mencoba untuk menetapkan UIImageView
suatu tindakan ketika pengguna mengetuknya.
Saya tahu cara membuat tindakan untuk UIButton
, tetapi bagaimana saya bisa meniru perilaku yang sama UIButton
, tetapi menggunakan UIImageView
?
ios
swift
uiimageview
pengguna3706773
sumber
sumber
@objc
pengubah ke fungsi.Anda perlu menambahkan tanda pengenal isyarat (Untuk mengetuk gunakan UITapGestureRecognizer , untuk mengetuk dan menahan, gunakan UILongPressGestureRecognizer ) ke
UIImageView
.Dan Menerapkan metode pemilih seperti:
sumber
Anda dapat menambahkan
UITapGestureRecognizer
ke imageView, cukup seret satu ke Storyboard / xib Anda, Ctrl-drag dari imageView ke gestureRecognizer, dan Ctrl-drag dari gestureRecognizer ke file Swift untuk membuatIBAction
.Anda juga harus mengaktifkan interaksi pengguna pada
UIImageView
, seperti yang ditunjukkan pada gambar ini:sumber
UIImageView
tidak merespons sentuhan secara default. Anda juga harus mengaktifkan interaksi pengguna.Untuk swift 2.0 ke atas lakukan ini
sumber
Kode Swift4
Coba ini beberapa metode ekstensi baru:
Sekarang kapan pun kita ingin menambahkan
UITapGestureRecognizer
keUIView
atauUIView
seperti subkelasUIImageView
, kita dapat melakukannya tanpa membuat fungsi terkait untuk penyeleksi!Pemakaian:
sumber
Anda sebenarnya bisa mengatur gambar
UIButton
untuk apa yang biasanya Anda masukkan ke dalamUIImageView
. Misalnya, di mana Anda akan melakukan:Anda bisa menggunakan:
Jadi, begini tampilannya kode Anda:
Hal yang hebat tentang menggunakan metode ini adalah bahwa jika Anda harus memuat gambar dari database, Anda dapat mengatur judul tombol sebelum Anda mengatur gambar:
Untuk memberi tahu pengguna Anda bahwa Anda memuat gambar
sumber
Perlu menambahkan malas untuk TapGestureRecognizer untuk mendaftar
karena 'diri' di UITapGestureRecognizer (target: self ...) akan nol jika bukan malas var. Bahkan jika Anda mengatur isUserInteractionEnable = true, itu tidak akan mendaftar tanpa lazar var.
sumber
Anda dapat menempatkan
UIButton
dengan latar belakang transparan di atasUIImageView
, dan mendengarkan ketukan pada tombol sebelum memuat gambarsumber
Kode Swift 4
Langkah 1 Di ViewdidLoad ()
Langkah 2 Tambahkan Fungsi Berikut
Telah Diuji Dan Bekerja Dengan Baik
sumber
Saya sarankan untuk menempatkan tombol tidak terlihat (opacity = 0) pada imageview Anda dan kemudian menangani interaksi pada tombol.
sumber