我有一个UITextView
,我有多个UIView
。 UIView
上的任何触摸操作都可以与相应的IBAction
相关联。在我的方案中,需要将双击手势与UIView
的{{1}}相关联,除此之外的任何其他触摸都需要转发到基础IBAction
。
执行上述方案的代码块
UITextView
我尝试了以下SO解决方案,
How to ignore touch events and pass them to another subview's UIControl objects?
使用hitTest我无法在UITextView *textView = [[UITextView alloc] init];
UIView *subview = [[UIView alloc] init];
UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
doubleTap.numberOfTapsRequired = 2;
[subview addGestureRecognizer:doubleTap];
[textView addSubview: subview];
Make UIGestureRecognizer to receive touches started on subviews
从UITextView
UITouch
touchBegan:withEvent:
转发UIView
未设置UITextView
的预期默认行为
是否有其他解决方案可用于解决此问题?
提前致谢。
答案 0 :(得分:2)
这可以通过以下方式实现:
答案 1 :(得分:0)
子视图是不必要的,删除它,并替换:
[subview addGestureRecognizer:doubleTap];
使用:
[textView addGestureRecognizer:doubleTap];
现在你应该在tapDetected:method中获取你的事件。
要确保您没有更改UITextView行为,请使用以下方法:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
OR
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch