- 作用:专门来寻找最合适的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/ 前言: 按照时间顺序,事件的生命周期是这样的...