ฉันกำลังพยายามเพิ่ม 2 UITapGestureRecognizers
ในมุมมองหนึ่งรายการสำหรับการแตะครั้งเดียวและอีกอันสำหรับกิจกรรมการแตะสองครั้ง ตัวจำแนกแท็ปเดียวทำงานตามที่คาดไว้ (ด้วยตัวมันเอง) แต่ดูเหมือนว่าฉันจะไม่สามารถทำให้ตัวจำแนกลายมือ Tap ทำงานได้
ได้พยายามที่จะทดลองกับคุณสมบัติที่ต้องการ: cancelsTouchesInView
, delaysTouchesBegan
และdelaysTouchesEnded
แต่ก็ยังไม่ได้ทำงาน
เมื่อฉันแตะสองครั้งตัวจำแนกการแตะเดียวจะเปิดใช้งานเสมอและเหตุการณ์การแตะสองครั้งก็จะถูกส่งไปยังมุมมองระดับสูง แต่ตัวจดจำการแตะสองครั้งที่กำหนดเองดูเหมือนจะไม่ได้รับการแจ้งเตือนเลย
เอกสารดูเหมือนจะแนะนำว่า 3 คุณสมบัติที่กล่าวถึงข้างต้นสามารถนำมาใช้เพื่อวัตถุประสงค์ แต่ฉันไม่แน่ใจว่าควรตั้งค่าใดและควรใช้ตัวจำแนกลายมือใด (เดี่ยวสองหรือสอง) หวังว่าคนที่คุ้นเคยกับสิ่งนี้จะช่วยได้
ต่อไปนี้เป็นบล็อกรหัสที่อัพเดทล่าสุด
// ****** gesture recognizers ******
- (void)addSingleAndDoubleTapGestureRecognizersToView:(UIView *)view
{
// single tap
UITapGestureRecognizer *singleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector(handleSingleTapOnView:)];
[singleTapRecognizer setNumberOfTouchesRequired:1];
[view addGestureRecognizer: singleTapRecognizer];
// double tap
UITapGestureRecognizer *doubleTapRecognizer = [[UITapGestureRecognizer alloc] initWithTarget: tableViewController action: @selector (handleDoubleTapOnView:)];
[doubleTapRecognizer setNumberOfTouchesRequired:2];
[singleTapRecognizer requireGestureRecognizerToFail: doubleTapRecognizer];
[view addGestureRecognizer: doubleTapRecognizer];
}
- (void)handleSingleTapOnView:(id)sender
{
}
- (void)handleDoubleTapOnView:(id)sender
{
}