在iOS中不是任何對(duì)象都能處理時(shí)間,只有繼承了UIResponder的對(duì)象才能接收并處理事件弓柱。我們稱之為“響應(yīng)者對(duì)象”
UIApplication UIViewController UIView都是繼承自UIResponder侧但,因此他們都是響應(yīng)者對(duì)象,都能夠接收并處理事件禀横。
UIResponder內(nèi)部提供了以下方法來(lái)處理事件
UIView的響應(yīng)者鏈條
UIView不接收觸摸事件的三種情況
----------------------------------------------------------------------
1.不接收用戶交互uerInteractionEnable = NO
2.隱藏hidden = YES
3.透明alpha = 0.0~0.01
提示:UIImageView的UserInteractionEnabled默認(rèn)就是NO柏锄,因此UIImageView以及它的子空間默認(rèn)是不能接收觸摸事件的。
事件的完整處理過(guò)程:
1.先將事件對(duì)象由上往下傳遞(由父控件傳遞給子控件)趾娃,找到最合適的空間來(lái)處理這個(gè)事情
2.調(diào)用最合適空間的touches......方法
3.如果調(diào)用了[super touches......];就會(huì)將事件順著響應(yīng)者鏈條往上傳遞,傳遞給上一個(gè)響應(yīng)者
4.接著就會(huì)調(diào)用上一個(gè)相應(yīng)者的touches......方法
什么是響應(yīng)者鏈條妇蛀?
1.響應(yīng)者鏈條是由多個(gè)響應(yīng)者對(duì)象鏈接起來(lái)的鏈條(什么是響應(yīng)者對(duì)象:能處理時(shí)間的對(duì)象)
2.利用響應(yīng)者鏈條饶氏,能讓多個(gè)控件處理同一個(gè)觸摸事件
3.怎么利用鏈條往上傳遞,誰(shuí)是上一個(gè)響應(yīng)者
誰(shuí)是上一個(gè)響應(yīng)者:
1.如果當(dāng)前這個(gè)view的是控制器的view古程,那么控制器就是上一個(gè)響應(yīng)者
2.如果當(dāng)前這個(gè)view不是控制器的view喊崖,那么父控件就是上一個(gè)響應(yīng)者