Saya menggunakan subkelas UIGestureRecognizer
khusus untuk melacak gerakan di kelas InfoView
saya. Kelas InfoView
adalah subview dari subkelas UITableViewCell
khusus yang disebut InfoCell
.
Saya telah menambahkan pengenal isyarat saya ke tampilan root saya (tampilan induk dari segala sesuatu yang lain di layar, karena tujuan pengenal isyarat khusus saya adalah untuk memungkinkan menyeret InfoCell
tampilan antar tabel). Sekarang, semuanya berjalan sebagaimana mestinya kecuali satu hal. Saya menggunakan kode berikut di subkelas UIGestureRecognizer
saya untuk mendeteksi sentuhan pada tampilan InfoView
:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UIView *touchView = [[touches anyObject] view];
if ([touchView isKindOfClass:[InfoView class]]) {
// Do stuff
}
Masalahnya disini adalah sentuhan pada objek InfoView
dicegat, oleh karena itu sentuhan tersebut tidak diteruskan ke UITableView
yang berisi InfoCell
, yang merupakan tampilan induk dari InfoView
. Ini berarti saya tidak dapat lagi menggulir tampilan tabel dengan menyeret tampilan InfoView
, yang merupakan masalah karena InfoView
menutupi seluruh InfoCell
.
Adakah cara agar saya dapat meneruskan sentuhan ke tampilan tabel agar dapat digulir? Saya sudah mencoba banyak hal:
[super touchesBegan:touches withEvent:event];
[touchView.superview.superview touchesBegan:touches withEvent:event];
(touchView.superview.superview
mendapat referensi ke induknya UITableView
)
Namun sejauh ini tidak ada yang berhasil. Selain itu, properti cancelsTouchesInView
dari UIGestureRecognizer
saya disetel ke NO
, sehingga tidak mengganggu sentuhan.
Bantuan dihargai. Terima kasih!