1. 找到第一响应者,从视图最底层UIWindow到根视图和其子视图。通常通过hitTest:withEvent和pointInside:withEven:方法,前者是判断是在那个视图,后者判断是否在这个视图上。遍历子视图是从顶层到底层遍历的.(判断是哪个视图能处理响应)
2.A视图有子视图B,B有子视图按钮C。调用方法如下A->B->C->A(hitTest:withEvent和pointInside:withEven:方发)然后按钮C touchBegin->touchEnd->BtnAction方法,target-action是由应用直接发送的.
3.如第二种情况排列和上面一种情况一样.点击B但是A有Tap手势A->B->C->A(hitTest:withEvent和pointInside:withEven:方发 然后A视图执行手势shouldRecivePress和手势失败的方法 然后B视图touchBegin->A手势开始的方法然后执行点击手势->B视图touchCanceled
4. A视图有子视图B,C, D,其中C有点击手势,点击C视图.但是响应链没有经过C,所以如下A->D->A(hitTest:withEvent和pointInside:withEven:方发)然后D视图touchBegin->touchEnd->方法
网友评论