我正在閱讀UIResponder類的文檔,並且遇到響應者鏈。現在有人說,例如,當一個命中測試無法處理一個事件時,它會將它傳遞給一個響應者鏈。那麼,什麼樣的例子可以說明一個事件不能被處理?當它說「一個事件不能被處理」是什麼意思?
0
A
回答
1
如果初始對象或者命中測試視圖或第一響應者-doesn't處理一個事件,UIKit中傳遞事件到鏈中的下一響應。 每個響應者通過調用nextResponder方法來決定是否要處理該事件或將其傳遞給其自己的下一個響應者。這個過程一直持續到響應者對象處理事件或沒有更多響應者。
什麼「處理」事件意味着真正取決於每個響應者類。您在實施響應者時需要做出的決定,對於每個事件,您是否將它傳遞給下一個響應者。
還有那個部分底部的重要注意事項:
重要:如果您實現一個自定義視圖來處理遠程控制的事件,行動的消息,搖運動與UIKit中,或編輯事件 - 菜單消息,不要直接將事件或消息轉發給nextResponder,將其發送給響應者鏈。相反,調用當前事件處理方法的超類實現,並讓UIKit爲你處理響應者鏈的遍歷。
同樣因爲你的應答是UIView
子與觸摸事件的工作中最常見的情況下,所有的這些方法包括:
此方法的默認實現不執行任何操作。然而,UIResponder的立即UIKit子類,特別是UIView,將消息轉發給響應者鏈。要將消息轉發給下一個響應者,請將消息發送給super(超類實現);不要直接將消息發送給下一個響應者。例如,
[super touchesBegan:touches withEvent:event];
如果你沒有覆蓋超調用這個方法(一種常見的使用模式),您還必須重寫處理觸摸事件,如果僅僅作爲存根(空)實現的其他方法。
相關問題
- 1. '處理事件'是什麼意思?
- 2. MSDN是什麼意思,當它說一些API不支持?
- 3. 什麼jQuery的事件表達的意思是當它在它
- 4. 當一個程序被說成是機器相關的 - 這是什麼意思?
- 5. 說一個列表在內部被鎖定是什麼意思?
- 6. 當我們說一個類被加載時,我們的意思是什麼?
- 7. 這個說法是什麼意思
- 8. 這個說法是什麼意思?
- 9. 這個說法是什麼意思?
- 10. 這個說法是什麼意思?
- 11. 當一段代碼被說成是可移植的時,這是什麼意思?
- 12. 這個typedef是什麼意思,它有什麼好處?
- 13. 當它說接口的方法返回什麼時,API是什麼意思?
- 14. 說明什麼是「神器」意思是
- 15. 是什麼意思:是什麼意思?
- 16. 說一個類型是「盒裝」是什麼意思?
- 17. 事件池是什麼意思?
- 18. 'window'的'readystatechange'事件是什麼意思?
- 19. 確切地說=>是什麼意思?
- 20. 下面的說法是什麼意思?
- 21. 當他們說LINQ是可組合的時候,它們是什麼意思?
- 22. 當他說undefined不能成爲房產價值時,crockford是什麼意思?
- 23. 如果一個事件發出信號,這是什麼意思?
- 24. 說一個類不能被重用是什麼意思? (特別是Java FX 2任務)
- 25. __是什麼意思,當它是一個函數名稱的一部分
- 26. 「模糊不清」是什麼意思?PATTERN是什麼意思?
- 27. 0x0F是什麼意思?這個代碼是什麼意思?
- 28. jQuery文檔說.submit()事件不會在IE中冒泡。這是什麼意思?
- 29. 它說UIAccelerationValue之前預期的表達式是什麼意思?
- 30. 是什麼意思:=在oracle中的意思是當我們使用它時
那麼,爲什麼一個響應者無法處理它,所以在這種情況下,我將它傳遞給下一個?我想它根據事件的類型而不同,但我需要一個例子。謝謝 – Badr
考慮一個遊戲板。遊戲板上的單個作品可能會對觸摸事件做出反應,以便它可以響應輕擊手勢,但您可能需要使用輕掃或拖動手勢作爲棋盤,以便管理棋子之間的交互。 – Jonah
沒問題,所以如果他希望這個響應者或其他人來處理這個事件,那麼這是根據編碼者的目的? – Badr