有人可以解釋這兩種方法之間的高級差異嗎?特別是,你們什麼時候使用一種,而且這些方法的目的有沒有重疊? 他們似乎是爲了相同的目的,但在文檔中似乎沒有任何關係,這讓我感到困惑。beginTrackingWithTouch和touchesBegan有何區別?
回答
beginTrackingWithTouch:withEvent:方法
1)子類UIControl
2)發送至當與所述給定事件的觸摸進入控制的邊界的控制。
3)提供自定義的跟蹤行爲(例如,更改高亮顯示)。 要做到這一點,使用一個或全部下列方法:beginTrackingWithTouch:withEvent:,continueTrackingWithTouch:withEvent:,endTrackingWithTouch:withEvent:方法
的touchesBegan:withEvent:方法
1)子類UIResponder
2)當一個或多個手指在視圖或窗口中觸碰時告訴接收器。
3)有兩種常見類型的事件:觸摸事件和動作事件。 觸摸的主要事件處理方法是touchesBegan:withEvent :, touchesMoved:withEvent :, touchesEnded:withEvent :, touchesCancelled:withEvent :. 這些方法的參數將觸摸與它們的事件相關聯 - 特別是新的或已更改的觸摸 - 並因此允許響應器對象跟蹤和處理觸摸,因爲交付的事件通過多點觸摸序列的階段進行。每當手指觸摸屏幕,在屏幕上拖動或從屏幕上擡起時,都會生成一個UIEvent對象。事件對象包含用於屏幕上所有手指的UITouch對象或僅從其上取下。
今天剛剛遇到這個問題,我認爲最主要的區別是beginTrackingWithTouch和朋友只用於跟蹤 - 而不是其他任何事情 - 特別是不用於目標/動作處理。所以如果你重寫touchesBegan,那麼當觸摸結束時,你也要負責調用sendActionsForControlEvents。但是,如果你使用beginTrackingWithTouch,那是免費的。
我發現這通過實現beginTrackingWithTouch(用於自定義按鈕控件),認爲它只是處理touchesBegan的橫向替換。所以在endTrackingWithTouch中,如果touchInside爲true,我會調用sendActionsForControlEvents。最終的結果是這個動作被調用了兩次,因爲首先內建機制發出了動作,然後我調用它。就我而言,我只是在自定義突出顯示方面很有趣,所以拿掉了對sendActionsForControlEvents的調用,並且都很好。
摘要:當您需要自定義跟蹤時,使用beginTrackingWithTouch,並在需要自定義目標/操作處理(或其他低級細節)時使用touchesBegan。
- 1. 如何區分touchesBegan和touchesMoved
- 2. Nhibernate和SubSonic有何區別?
- 3. MonoTouch和MonoDevelop有何區別?
- 4. MySQLi和PDO有何區別?
- 5. 4GL和DSL有何區別?
- 6. DELETE_ORPHAN和DELETE有何區別?
- 7. bcpow和pow有何區別?
- 8. V8和ES8有何區別
- 9. PopUpWindow和Dialog有何區別?
- 10. ifne和ifnonnull有何區別?
- 11. Ntxxx和ZWxxx有何區別?
- 12. MXML和Actionscript3有何區別
- 13. Progressbar和progressDialog有何區別?
- 14. Date.current和Date.today有何區別?
- 15. RMI和Corba有何區別?
- 16. ServletContext和ServletActionContext有何區別
- 17. DynaActionForm和ActionForm有何區別?
- 18. tincan和Scorm有何區別?
- 19. wcsncpy和wcscpy_s有何區別?
- 20. vbscript和vb.net有何區別?
- 21. REST和RESTful有何區別
- 22. PREMIRRORS和SOURCE_MIRROR_URL有何區別
- 23. jquery.js和jquery.lite.js有何區別?
- 24. Cond和Case有何區別?
- 25. Proctractor和Selenium有何區別?
- 26. Mocha和Supertest有何區別?
- 27. MD5CryptoServiceProvider和HMACMD5有何區別
- 28. ip_hdr和ipip_hdr有何區別?
- 29. Href和Url.Content有何區別?
- 30. 區別有和沒有ObjectResult
好答案謝謝。 – petric
謝謝。把它放到上下文中:我有一個包含一堆子視圖(例如標籤)的自定義控件。用戶應該能夠拖動這些標籤,並且它們以主控制(容器)控制的方式與彼此(在運動期間)交互。我應該使用哪種觸摸方法來實現拖動:由UIControl提供的那些,還是由UIResponder提供的? – rmp251