2012-02-21 262 views
1

2012-02-21 11:59:18,106 textView [20977:fe03]; target = <(action = delayed :, target =)>>防止在UITextView上点击事件

2012-02-21 11:59:18,107 textView [20977:fe03]; target = <(action = handlePan:,target =)>>

2012-02-21 11:59:18 .108 textView [20977:fe03]; target = <(action = oneFingerTripleTap :, target =)>; numberOfTapsRequired = 3>

2012-02-21 11:59:18.108 textView [20977:fe03]; target = <(action = oneFingerDoubleTap :, target =)>; numberOfTapsRequired = 2>

2012-02-21 11:59:18.109 textView [20977:fe03]; target = <(action = twoFingerSingleTap :, target =)>; numberOfTouchesRequired = 2>

2012-02-21 11:59:18.123 textView [20977:fe03];;目标= <(action = tapAndAHalf:,target =)>>

2012-02-21 11:59:18.124 textView [20977:fe03]; target = <(action = twoFingerRangedSelectGesture :, target =)>>

2012-02-21 11:59:18.124 textView [20977:fe03]; target = <(action = oneFingerTap :, target =)>>

2012-02-21 11:59:18.129 textView [20977:fe03]; target = <(action = loupeGesture :, target =)>>

UITextView上的gestureRecogniser列表的上方。我需要在UITextView上防止事件:twoFingerSingleTap,但仅限于此事件。有可能吗?

回答

3

你需要的东西,如:

for (UIGestureRecognizer *g in myTextView.gestureRecognizers) 
{ 
    if ([g isKindOfClass:[UITapGestureRecognizer class]]) 
    { 
     if (([(UITapGestureRecognizer *)g numberOfTouchesRequired] == 2) && ([(UITapGestureRecognizer *)g numberOfTapsRequired] == 1)) 
     { 
      [g setEnabled: NO]; 
     } 
    } 
} 
+0

工作成功。 – benhi 2012-02-21 14:25:25

+0

@Kyr Dunenkoff:我同意你的回答更具有教育意义。 +1。但我们都从现成的代码中学到了一些东西。 – 2012-02-21 14:30:02

4

UITextView,与UIView的任何其他子类一样,具有gestureRecognizers属性,其中包含附加到视图的所有手势识别器的NSArray。枚举这个数组,找到您要查找的识别器并将其禁用。

+0

TKS但如何枚举这个数组? – benhi 2012-02-21 13:42:24

+0

以及如何禁用它? – benhi 2012-02-21 13:47:21

+1

你至少试过阅读文档吗?快速枚举 - [https://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocFastEnumeration.html]。禁用某些东西 - '[object setEnabled:NO];' – 2012-02-21 13:51:51