[英]Handling multiple touches on iPhone
我目前正在開發一個應用程序,其中我具有很多子視圖的主視圖。 現在,我有兩個特定的子視圖,並且我只希望其中一個可以同時被“觸摸”。 因此,兩者都應該能夠響應觸摸事件,但不能同時響應。 由於我還有其他可以同時觸摸的子視圖,因此無法使用multitouch或ExclusiveTouch屬性。 有什么想法嗎? 也許我可以將兩種視圖都分組到一個觸摸區域。
提前致謝
在您的應用程序委托或其他單個viewBeingTouched
一個讀寫屬性,我們將其viewBeingTouched
。 請確保您使用@property
沒有 nonatomic
。
使您的兩個視圖實例都可以覆蓋UIResponder
方法:
在touchesBegan中,檢查viewBeingTouched
的值。 如果為nil
,請將其設置為self
並調用super的實現。 否則,什么都不做。
在touchesEnded,檢查的價值viewBeingTouched
。 如果是self
,請將其設置為nil。
得到它? 進行觸摸的第一個視圖將抓住該屬性,並阻止另一個視圖對其進行注冊。
將邏輯置於其父級中,以(暫時)禁用那些沒有得到觸摸的邏輯(userInteractionEnabled = NO)。
當然,仍然有人可以同時放下每個手指。 您可以確定哪個視圖最接近觸摸中心。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.