写作原因
虽然官方文档上给出了Hit Testing的大略描述,但是发现很多同学在使用中还会有各种疑惑以及错误,而且任何自然语言的描述都比不上源代码更能让程序员信服,so~~
先上结果:
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
{
if(self.hidden||self.userInteractionEnabled==NO||self.alpha<0.01)
{
/*此处见文档
This method ignores view objects that are hidden, that have disabled user interactions, or have an alpha level less than 0.01.
*/
return nil;
}
if (![self pointInside:point withEvent:event]) {
return nil;//如果这个点不在本身处理范围内,返回nil
}
NSArray* sortedSubViews=[self subviews];/*对subview按照index由大到小排序,index为视图层级,0为添加的第一个视图*/;
for (