美文网首页
iOS 响应链与传递链

iOS 响应链与传递链

作者: 夏趣意转秋来 | 来源:发表于2018-08-03 09:04 被阅读41次

传递链

从最底层UIWindow 到UIView

UIView有两个方法:
pointInside:withEvent:判断点击的点是否在当前UIView上,是返回YES 否则返回NO
hitTest:withEvent: 如果point不在当前的UIview上返回nil 否则继续遍历其子视图(额外条件hidden!=YES userInteractionEnabled!=NO alpha!=0)

响应链

从最上层的UIView到最底层的UIWindow

同样可以通过touchesBegan: withEvent:方法来截获并决定是否向下传递
view.nextResponer可以获取view的下一响应者

手势与touch

1、手势和pointInside一级hitTest必须得先找到View,然后才能触发手势;
2、第一步找到的view,那么view和它的superView的手势都能响应
3、手势的底层实际是根据view的touch的四个方法实现的
4、有时我们添加了手势后不再关心touch的调用,那么可以通过delayTouchBegin、cancelTouchInView两个属性来决定touch方法的调用时机甚至是取消touch的方法调用

相关文章

网友评论

      本文标题:iOS 响应链与传递链

      本文链接:https://www.haomeiwen.com/subject/nvuhvftx.html