2016-07-11 19 views
1

目前我遇到了一個問題,其中有表格單元格允許觸摸事件獲取詳細信息。但是,如果用戶在1秒內按下該單元2-4次,則會導致將多個視圖推到導航視圖控制器上。這會在視圖彈出時導致明顯的錯誤,並且導航控制器無法進入子視圖並返回。導致多個陷阱,最不幸的是沒有出現錯誤日誌。但是,由於這種行爲不應該首先得到支持。問題是除了線程鎖定之外,還有其他方法可以防止UiButtons或表格單元格上出現多個觸摸事件嗎?由於在Xcode 7中添加了https和http安全設置,因此我正在使用Xcode版本6.4。如果後續版本的Xcode自動實現此解決方案,那麼將會善於瞭解。謝謝你的幫助。目標C觸摸事件鎖定

+0

顯示觸摸時發生的代碼。 – Fogmeister

+0

我會在一分鐘後在這裏發佈一些信息。 – Bored915

+0

您在viewDidAppear之前做了太多工作,在下一個(推送)的UIViewController中反過來阻塞了UI線程。這導致在您希望將轉換操作輸入到新的UIViewController時接收UITouchEvent。我不建議使用userinteraction啓用標誌。 –

回答

3

可以鎖定的按鈕(或小區)它輕敲後:

button.userInteractionEnabled = NO; 

或整個界面:

[[UIApplication sharedApplication] beginIgnoringInteractionEvents]; 

以及當過渡/加載完成解鎖。

+0

這似乎會工作,生病給它一個測試,看看。 – Bored915

2

如果您不想用GCD扼殺觸摸事件,則UIButtonUIGestureRecognizer都會顯示enabled屬性。您可以簡單地在一次觸摸後禁用該按鈕,並在推動詳細視圖控制器後重新啓用它。

一個簡單的方法來重新啓用它會在控制器推詳細視圖的viewWillAppear方法 - 這樣每當你回去給視圖控制器,而不必聽UINavigationControllerenabled屬性會自動復位轉換等。