Pertanyaan Mendeteksi acara sentuh di UILabel


Saya memiliki UILabel yang saya tambahkan secara terprogram ke tampilan utama saya. Saya kemudian menambahkan recognizer gerakan untuk mendapatkan peristiwa sentuhan pada label:

UITapGestureRecognizer *recog = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didTouchNotification)];
[notification addGestureRecognizer:recog];
[recog release];

Namun, tidak ada yang menyala saat label disentuh. Saya mencatat semua subview untuk memastikan label berada di atas, dan itu adalah. Satu-satunya cara saya bisa mendapatkan recognizer untuk bekerja adalah jika saya menambahkannya ke tampilan yang mendasarinya, tetapi itu tidak banyak membantu. Apakah ada yang tahu mengapa label ini berperilaku "transparan"?

Selamat berlibur!


7
2017-12-25 21:15


asal


Jawaban:


UILabel memiliki nya userInteractionEnabled set properti ke NO secara default sehingga tidak menerima acara sentuh dan recognizer gerakan tidak berfungsi. Coba aktifkan interaksi pengguna untuk label Anda:

...
notification.userInteractionEnabled = YES;
...

18
2017-12-25 21:22