cocoa-touch – UIGestureRecognizer阻塞表视图滚动

cocoa-touch – UIGestureRecognizer阻塞表视图滚动,第1张

概述我正在使用自定义的UIGestureRecognizer子类来跟踪我的InfoView类上的手势. InfoView类是名为InfoCell的自定义UITableViewCell子类的子视图. 我已经将我的手势识别器添加到我的根视图(屏幕上其他所有内容的父视图,因为我的自定义手势识别器的目的是允许在表之间拖动InfoCell视图).现在,一切都有效,除了一件事.我在我的UIGestureRecog 我正在使用自定义的UIGestureRecognizer子类来跟踪我的InfoVIEw类上的手势. InfoVIEw类是名为InfoCell的自定义UItableVIEwCell子类的子视图.

我已经将我的手势识别器添加到我的根视图(屏幕上其他所有内容的父视图,因为我的自定义手势识别器的目的是允许在表之间拖动InfoCell视图).现在,一切都有效,除了一件事.我在我的UIGestureRecognizer子类中使用以下代码来检测InfoVIEw视图上的触摸:

- (voID)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    UIVIEw *touchVIEw = [[touches anyObject] vIEw];    if ([touchVIEw isKindOfClass:[InfoVIEw class]]) {        // Do stuff    }

这里的问题是InfoVIEw对象上的触摸被截获,因此它们不会被转发到包含InfoCell的UItableVIEw,后者是InfoVIEw的父视图.这意味着我无法再通过拖动InfoVIEw视图来滚动表视图,这是一个问题,因为InfoVIEw涵盖了整个InfoCell.

有什么方法可以将触摸转发到表格视图,以便它可以滚动?我已经尝试了很多东西:

[super touchesBegan:touches withEvent:event];

[touchVIEw.supervIEw.supervIEw touchesBegan:touches withEvent:event]; (touchVIEw.supervIEw.supervIEw获取对其父UItableVIEw的引用)

但迄今为止没有任何工作.此外,我的UIGestureRecognizer的cancelstouchesInVIEw属性设置为NO,因此不会干扰触摸.

感谢帮助.谢谢!

解决方法 查看UIGestureRecognizerDelegate方法: – (BOol)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer

如果返回YES,则会阻止您的手势识别器踩踏UIScrollVIEw用于检测滚动的手势识别器.

总结

以上是内存溢出为你收集整理的cocoa-touch – UIGestureRecognizer阻塞表视图滚动全部内容,希望文章能够帮你解决cocoa-touch – UIGestureRecognizer阻塞表视图滚动所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1084583.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存