为什么我已经在hitTest中返回nil了,还会走scrollview的回调
https://blog.csdn.net/u013602835/article/details/79986819 iOS事件响应链
1.如果最终hitTest没有找到第一响应者,或者第一响应者没有处理该事件,则该事件会沿着响应链向上回溯,比如上面的scrollview的hitTest如果是scrollview就返回nil,此时应该就会回溯到UIWindow和UIApplication实例上,如果这两个实例都不能,则该事件会被丢弃。此处就是用户上滑的操作就会被丢弃。
2.hitTest会忽略hidden的视图,userInteractionEnabled = NO的视图,alpha< 0.01的视图。子视图区域超过父视图区域的,区域外的触摸操作也不会被识别。只要pointInside返回的是yes,hitTest最终都会返回一个view,不是子view就是他自身。可以通过重写pointInside来处理具体情况。
3.上述例子中,重写hitTest,在scrollview的某些区域(没有被子view覆盖的区域,如果用户接触的是子view区域,那么scrollview的hitTest会返回子view,如果不是就返回nil。还是不理解为什么子view为什么会响应scrollview的回调!!我知道了。看1.如果第一响应者没有处理该事件,就会沿着响应链向上回溯,这里回溯就是用来处理事件的。)