響應(yīng)鏈
- 尋找事件的最佳響應(yīng)視圖是通過(guò)對(duì)視圖調(diào)用hitTest和pointInside完成的
- hitTest的調(diào)用順序是從UIWindow開始,對(duì)視圖的每個(gè)子視圖依次調(diào)用,子視圖的調(diào)用順序是從后面往前面,也可以說(shuō)是從顯示最上面到最下面
- 遍歷直到找到響應(yīng)視圖蛛芥,然后逐級(jí)返回最終到UIWindow返回此視圖
處理者
1.找到最適合的響應(yīng)視圖后事件會(huì)從此視圖開始沿著響應(yīng)鏈nextResponder傳遞脓钾,直到找到處理事件的視圖,如果沒(méi)有處理的事件會(huì)被丟棄。
2.如果視圖有父視圖則nextResponder指向父視圖尊残,如果是根視圖則指向控制器炒瘸,最終指向AppDelegate, 他們都是通過(guò)重寫nextResponder來(lái)實(shí)現(xiàn)。
注意:
1.Alpha=0寝衫、子視圖超出父視圖的情況顷扩、userInteractionEnabled=NO、hidden=YES視圖會(huì)被忽略慰毅,不會(huì)調(diào)用hitTest
2.父視圖被忽略后其所有子視圖也會(huì)被忽略