我一直在尋找解決方案,並且一直沒找到答案。如果之前有人問過,mayboe有人可以指出,或者幫助我提出一個想法。只要用戶正在互動,就可以顯示菜單
我有UIViewController
託管自定義視圖。第一個自定義視圖是全屏。第二個自定義視圖實際上是一個從屏幕底部滑入視圖的菜單,類似於具有自定義動畫的工具欄,然後它應滑出。
當前確認:延遲後菜單滑入視圖(出現視圖後),並且NSTimer開始計數。它在視圖中保持幾秒鐘,直到NSTimer啓動另一種方法,並且該方法將菜單撤回。
一切工作正常。
我想要什麼:如果用戶啓動與菜單交互,撥動開關,滑塊等,我希望菜單留在視圖中,延遲的NSTimer的發射,直到用戶完成交互。然後縮回菜單。
爲了實現這一點,我在將菜單滑入視圖的方法中使用了NSTimer,以啓動X毫秒後縮回菜單的另一種方法。
在收回菜單的方法中,我使計時器無效。
我覆蓋了tocuhesBegan
方法,以查看交互區域是否落入菜單的邊界內,如果是,則將NSTimer重置爲另一X毫秒。
問題:如果用戶觸摸菜單的背景,這是好的,但如果用戶與菜單內的開關,按鈕和幻燈片交互時,menu.view
不註冊的觸摸,這是有意義的,因爲它們是前線和耗盡觸摸事件,所以觸摸事件不會傳遞到層次結構中。但另一方面,這是我的問題!
我不能覆蓋menu.view
中每個元素的每個touchesBegan
方法。我還可以註冊menu.view區域內發生的那些觸摸嗎?
我試過locationInView:nil
在窗口內觸摸,但沒有註冊與按鈕和滑塊等的交互。
謝謝。
謝謝。我會給它一個鏡頭。順便說一句,你對我的方法有什麼想法?它聽起來不錯嗎?或者有更好的方法? – Canopus 2012-01-31 20:19:15
對我來說這聽起來是明智的做法 - 我在其中一個UI中做了類似的事情。 – 2012-01-31 20:39:33