首页 > 其他 > 详细

OS开发 touch事件的优先级和事件传递

时间:2015-11-24 20:13:27      阅读:282      评论:0      收藏:0      [点我收藏+]

界面类的对象一般都是可以接触点击事件的,只不过有的默认接受,有的需要设定属性。

userInteractionEnabled 属性设置为YES的时候就可以接受点击事件了


 

- (void)touchesBegan:(NSSet *) touches withEvent:(UIEvent *) event

 

- (void)touchesMoved:(NSSet *) touches withEvent:(UIEvent *) event

 

- (void)touchesEnded:(NSSet *) touches withEvent:(UIEvent *) event

 

- (void)touchesCancelled:(NSSet *) touches withEvent:(UIEvent *) event

 

上面三个方法就会显示触摸的地方,可以在里面进行响应的操作

 

touch事件同时只能给一个对象,那么控制touch事件分配的对象也是一个难点了

 

首先touch事件响应的优先级就是界面的层次,在最上层不响应的时候就会传递给下层

 

当点击一个区域,想把想把事件传递下去,其他区域拦截事件的时候又是一个问题了

 

 

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event

 

这个方法可以很好的解决问题,当返回NO的时候就可以传递下去,返回YES的时候当前对象接受点击事件

 

 

CGRectContainsPoint(CGRectMake(0, 0, 40, 40), point);


经常配合这个方法来判断触摸点是否在CGRect内;

OS开发 touch事件的优先级和事件传递

原文:http://www.cnblogs.com/mawenqiangios/p/4992532.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!