- 作用:专门来寻找最合适的view
- 什么时候调用:当一个事件传递给当前的View时候调用.
- 返回谁,谁就是最合适的View
-(UIView *)hitTes:(CGPoint)point withEvent:(UIEvent *)event
{
//判断自己是否能接受事件
if (self.userInteractionEnabled == NO || self.hidden == YES || self.alpha <= 0.01)
{
return nil:
}
// 判断当前点 在不在自己身上.
if (![self pointInside:point withEvent:event]) {
return nil;
}
// 查看自己是不是最合适的view,从后往前遍历自己的子控件.
int count = (int)self.subviews.count;
for (int i = count -1 ; i >= 0; i--) {
UIView *childView = self.subviews[i];
CGPoint childP = [self convertPoint:point toView:childView];
UIView *view = [childView hitTest:childP withEvent:event];
if (view) {
return view;
}
}
return self;
}
hitTest方法的实现原理
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 本文来自:http://ios.jobbole.com/84081/ 前言: 按照时间顺序,事件的生命周期是这样的...