2017-09-05 57 views
0

我的UITableview位於一個容器內(需要嵌入segue,因此我可以使用靜態表視圖單元格),而父視圖控制器的父級是UIViewcontroller容器。爲什麼UITableViewRow需要長按才能觸發segue?

爲什麼表格視圖上的一行需要非常長的按鍵才能觸發一個segue?

如果我刪除父UIViewcontroller容器,那麼它工作正常。

+1

很難說。但是對我來說,一旦添加(輕拍)手勢識別器與表格視圖衝突,導致您正在描述類似的事物。 –

+0

是的,就是這樣。我如何給表格優先? –

+1

在我的情況下,我刪除了手勢識別器,因爲它並不意味着在tableview可見的時候在那裏。對你來說,這看起來像你需要的答案https://stackoverflow.com/questions/8192480/uitapgesturerecognizer-breaks-uitableview-didselectrowatindexdexpath –

回答

0

延遲可能是爲了檢測您觸摸了哪個子視圖而發生的延遲。

當你觸摸在窗口任何地方在您的應用程序,該應用程序的窗口調用視圖層次結構,其中遞歸調用hitTest:withEvent:其子視圖最終檢測實際接收並處理視圖中最頂層的視圖hitTest:withEvent:方法觸摸事件。所以基本上,視圖控制器中的子視圖數量越多,實際視圖響應的延遲就越多。遞歸調用hitTest:withEvent:返回有點延遲,這就是爲什麼你看到延遲。 刪除您的父視圖控制器不會添加很多延遲,因爲您減少了視圖控制器的子視圖數量。另外,如果涉及更多的滾動視圖(或更多子視圖),則可讓UIResponder遍歷更多子視圖以返回處理觸摸事件的視圖。

+0

這是與頂視圖上的輕拍識別器的衝突。延遲太慢而不能由處理時間引起。 –

+0

是的,它加起來。 –

相關問題