UIResponder_響應者_響應者鏈條

在iOS中不是任何對象都能處理時間,只有繼承了UIResponder的對象才能接收并處理事件。我們稱之為“響應者對象”

UIApplication UIViewController UIView都是繼承自UIResponder,因此他們都是響應者對象,都能夠接收并處理事件。

UIResponder內部提供了以下方法來處理事件

UIView的響應者鏈條

UIView不接收觸摸事件的三種情況

----------------------------------------------------------------------

1.不接收用戶交互uerInteractionEnable = NO

2.隱藏hidden = YES

3.透明alpha = 0.0~0.01

提示:UIImageView的UserInteractionEnabled默認就是NO,因此UIImageView以及它的子空間默認是不能接收觸摸事件的。

事件的完整處理過程

1.先將事件對象由上往下傳遞(由父控件傳遞給子控件),找到最合適的空間來處理這個事情

2.調用最合適空間的touches......方法

3.如果調用了[super touches......];就會將事件順著響應者鏈條往上傳遞,傳遞給上一個響應者

4.接著就會調用上一個相應者的touches......方法

什么是響應者鏈條?

1.響應者鏈條是由多個響應者對象鏈接起來的鏈條(什么是響應者對象:能處理時間的對象)

2.利用響應者鏈條,能讓多個控件處理同一個觸摸事件

3.怎么利用鏈條往上傳遞,誰是上一個響應者

誰是上一個響應者:

1.如果當前這個view的是控制器的view,那么控制器就是上一個響應者

2.如果當前這個view不是控制器的view,那么父控件就是上一個響應者


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容