Saya telah menemukan bahwa saya dapat membuat UILabel jauh lebih cepat daripada UITextField dan saya berencana untuk menggunakan UILabel sebagian besar waktu untuk aplikasi tampilan data saya.
Untuk membuat cerita panjang pendek, saya ingin membiarkan pengguna mengetuk UILabel dan meminta panggilan balik saya menanggapinya. Apakah itu mungkin?
Terima kasih.
userInteractionEnabled = true
Jawaban:
Anda dapat menambahkan sebuah
UITapGestureRecognizer
instance ke UILabel Anda.Sebagai contoh:
sumber
Jika Anda menggunakan papan cerita, Anda dapat melakukan seluruh proses ini di papan cerita tanpa kode tambahan. Tambahkan label ke papan cerita, lalu tambahkan gerakan ketukan ke label. Di panel Utilities, pastikan "Interaksi Pengguna Diaktifkan" dicentang untuk label. Dari gerakan ketuk (di bagian bawah pengontrol tampilan di storyboard), ctrl + klik dan seret ke file ViewController.h Anda dan buat Tindakan. Kemudian implementasikan tindakan di file ViewController.m.
sumber
Swift 3.0.0
Inisialisasi isyarat untuk
tempLabel
Penerima tindakan
Swift 4.0.0
Inisialisasi isyarat untuk
tempLabel
Penerima tindakan
sumber
Swift 2.0:
Saya menambahkan string nsmutable sebagai teks sampleLabel, mengaktifkan interaksi pengguna, menambahkan isyarat ketukan dan memicu metode.
sumber
Anda dapat menggunakan UIButton dan mengatur teks sesuai keinginan Anda. Tombol tersebut tidak harus terlihat seperti tombol jika Anda tidak menginginkannya
sumber
Untuk menambahkan gerakan Tap pada UILable
dan untuk menilai metode pemilih
Catatan: Tambahkan UIGestureRecognizerDelegate dalam file .h
sumber
Versi Swift:
var tapGesture : UITapGestureRecognizer = UITapGestureRecognizer()
Lalu di dalam
viewDidLoad()
, tambahkan ini:sumber
Jika Anda ingin menggunakan teks Multi baris di tombol Anda, buatlah
UILabel
dengan teks Multiline dan tambahkan sebagai subview ke tombol Anda.misalnya:
sumber
Swift 3 dari Alvin George
sumber
Versi Swift terlihat seperti ini:
sumber
Saya pribadi lebih suka metode penulisan ekstensi untuk UILabel. Ini yang saya gunakan.
Anda kemudian akan menggunakannya seperti ini dari setiap instance UILabel:
Ini berpotensi menyebabkan beberapa kebocoran memori yang saya yakini, tetapi saya belum menentukan cara terbaik untuk mengatasinya.
sumber