iPhone/iPad調整事件遞交 endIgnoringInteractionEvents

UIKit 爲應用程序提供了編程手段來簡化事件處理或者完全關閉事件流。下面的列表總結了這些方法:

關閉觸摸事件的遞交。 缺省情況下,視圖接收觸摸事件,但是你可以設置它的userInteractionEnabled 屬性爲NO來關閉事件提交。視圖在隱藏或透明時也不會接收事件。

在一段時間內關閉觸摸事件的遞交。 應用程序可以調用UIApplication 方法beginIgnoringInteractionEvents 並稍後調用endIgnoringInteractionEvents 方法。 第一個方法使應用程序完全停止接收觸摸事件消息;第二個方法恢復接收消息。有些時候你想關掉事件接收比如正在執行動畫。

開啓多點觸摸的遞交。 缺省情況下,視圖忽略多點觸摸事件序列中除了第一次觸摸以外的其它所有事件。如果你想這個視圖處理多點觸摸,你必須爲這個視圖開啓這個能力。通過編程設置你的視圖的multipleTouchEnabled 屬性爲YES, 或者在Interface Builder這個視圖的inspector裏設置相關屬性。

限制事件遞交給單個視圖。 缺省情況下,一個視圖的exclusiveTouch 屬性被設置爲NO, 這意味着這個視圖不會阻塞該窗口中的其它視圖接收觸摸事件。如果你把這個屬性設置爲YES,你標記這個視圖以便,當它跟蹤觸摸時,它是當前窗口中唯一可以跟蹤觸摸的視圖。窗口中的其它視圖將不能接收觸摸事件。不過,被標記爲“exclusive touch”的視圖不能接收相同窗口中其它視圖相關的觸摸事件。如果一個手指接觸了一個exclusive-touch 視圖, 那麼這個觸摸事件僅在該視圖是當前窗口中唯一跟蹤這個手指的視圖時纔會被遞交出去。如果一個手指觸摸了一個non-exclusive 視圖, 那麼這個觸摸事件僅在沒有其它手指 被一個exclusive-touch 視圖跟蹤時纔會被遞交出去。

限制事件遞交給子視圖。一個自定義UIView 類可以重寫hitTest:withEvent: 來限制多點觸摸事件遞交給它的子視圖。請查看關於這個技術的討論“Hit-Testing”

發佈了8 篇原創文章 · 獲贊 4 · 訪問量 21萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章