2014-09-26 55 views
2

我試圖加載一個UIView,然後馬上檢測觸及新視圖。目前,覆蓋touchesBegan延遲了大約一秒鐘。touchesBegin延遲後呈現UIView

因此,我加載了UIView並立即繼續點擊屏幕。調用touchesBegan需要大約一秒鐘的時間。從那時起,一切都很好。但是,我無法承受〜第二次等待。

我已經將UIView中的所有代碼都剝離出來,以防止任何東西堵塞主線程,但延遲仍然存在。

如何才能立即獲得新提交的觸摸反饋UIView?謝謝。

- 編輯下面 -

我一直在玩弄這在過去的幾個小時。即使在創建自定義UIWindow並重寫sendEvent時,當顯示新視圖時,UITouchPhase也會暫停。要再次開始接收事件,我必須將手指從屏幕上取下並放回屏幕上。 (我不想這樣做)。

這個問題似乎在於對新視圖控制器的延續。當它繼續時,觸摸階段結束。如果我只是將子視圖添加到當前視圖控制器,我會看到所需的功能(即即時響應觸摸)。

鑑於我新近出現的視圖包含很多邏輯,我想將它全部包裝在它自己的視圖控制器中,而不是將它添加到演示者視圖控制器中。有沒有辦法讓我做到這一點,並使用'addSubview`來呈現它?這應該有希望達到預期的效果。

回答

2

最後,我用它自己的xib創建了一個自定義視圖控制器。我會在哪裏尋找,我現在實例化該自定義視圖控制器並追加它的視圖。這消除了觸摸滯後。

+0

我在這裏遇到了同樣的麻煩。 http://stackoverflow.com/questions/33727638/ios-why-touchesbegan-has-some-delay-in-some-specific-area-in-uiview你是如何解決你的麻煩? – TomSawyer 2015-11-16 07:35:14

1

你禁用了多點觸摸嗎?在控制器等待查看是否有後續觸摸(在所有單觸式觸摸上)時,存在固有的延遲。最初的低迷可能是加載多點觸控代碼並決定如何處理。

myViewController.view.multipleTouchEnabled=NO; 
+0

嘗試禁用多點觸摸,不會不幸停止延遲。我還實現了一個自定義的'UIWindow'並重寫了'sendEvent'。奇怪的是,這也會在延遲期間停止接收/發送事件。 – 2014-09-26 19:02:31

0

至於你最後的問題,看看view controller containment。由於iOS 5 Apple正式和安全地提供了掛鉤來呈現一個視圖控制器作爲另一個視圖控制器的子視圖。

可悲的是我對於更大的問題一無所知。