UIPanGestureRecognizer,touchesMoved;解决多层级 UIPanGestureRecognizer问题

发布时间:2017-5-26 4:19:12 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"UIPanGestureRecognizer,touchesMoved;解决多层级 UIPanGestureRecognizer问题",主要涉及到UIPanGestureRecognizer,touchesMoved;解决多层级 UIPanGestureRecognizer问题方面的内容,对于UIPanGestureRecognizer,touchesMoved;解决多层级 UIPanGestureRecognizer问题感兴趣的同学可以参考一下。

目前在弄ios应用开发,遇到一个gesture的问题,刚解决,乘着热乎丢这里备份。方便自己和大家以后查看。 我的问题是,父窗口需要手势左右切换,子窗口里面有一个需要手势拖动的控件。 父窗口的是UIPanGestureRecognizer,子窗口的是用TouchMoved()的方式。这样父窗口的手势完全屏蔽子窗口。 解决办法很简单: 1、首先在控件里面重新申请一个UIPanGestureRecognizer,注册到一个空响应函数上。 这样做,就是用子窗口对事件响应的优先级来屏蔽父窗口。而且作用域只局限于这个控件的区域,手势在其它区域不会被屏蔽。 2、设置以下属性,因为我原先控件是TouchMoved方式实现,在UIPanGestureRecognizer active的时候会自动屏蔽原先的touchMoved机制。这条语句就避免这个问题。 panGesture.cancelsTouchesInView = FALSE; so ,这样,简单的加个中间过程就把原先的手势优先级给传递回TouchMoved()了。 demo: - (id)initWithFrame:(CGRect)frame {     if((self = [super initWithFrame:frame])) {         [self setDefaultValues];                  UIPanGestureRecognizer *panGesture = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(paned:)];         panGesture.cancelsTouchesInView = FALSE;         [self addGestureRecognizer:panGesture];     }     return self; } - (void) paned:(UIPanGestureRecognizer *)tapGesture {          //it's None here! :     //use to disable panGestrue in DynamicsDrawViewController; }

上一篇:JavaScript Puzzlers javascript解惑
下一篇:UML图(三)类图

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。