C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了objective-c – 除了双击UITextView之外的前向触摸大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个UITextView,我有多个UIView. UIView上的任何触摸操作都可以与相应的IBACtion相关联.在我的场景中,需要将双击手势与UIView的IBACtion相关联,除此之外的任何其他触摸都需要转发到底层的UITextView.

我执行上述场景的代码

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];

我尝试了以下SO解决方案,

How to ignore touch events and pass them to another subview’s UIControl objects?

使用hitTest我无法捕获UITextView顶部的UIViews中的双击手势

Make UIGestureRecognizer to receive touches started on subviews

转发UITouch设置从touchBegan:withEvent:在UIView中转到UITextView没有给出UITextView的预期认行为

是否有其他解决方案可用于解决此问题?

提前致谢.

解决方法

这可以通过以下方式完成:

>让UITextView按照How to ignore touch events and pass them to another subview’s UIControl objects?中的建议处理触摸事件>在UIView的hitTest中保存对其发生的视图的引用,以便以后可以使用它>添加自定义双击手势识别器,检查hitTest引用是否为空,表示双击发生在目标视图上并将事件转发到该视图.如果没有,则手势识别器失败.要使手势识别器失败,您需要包含UIKit / UIGestureRecognizerSubclass.h并将state属性设置为UIGestureRecognizerStateFailed>将手势识别器添加到UITextView>扩展UITextView以覆盖gestureRecognizers getter并遍历手势识别器以要求自定义手势失败.这必须在getter中完成,因为手势识别器似乎经常被重置

大佬总结

以上是大佬教程为你收集整理的objective-c – 除了双击UITextView之外的前向触摸全部内容,希望文章能够帮你解决objective-c – 除了双击UITextView之外的前向触摸所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。