2017-05-24 35 views
0

我有一個超級視圖,它上面有一個UITapGestureRecognizer。它允許在視圖內觸摸,因爲在視圖內有可點擊的項目。iOS - Superview手勢識別器在不需要時被調用,無法取消子視圖觸摸事件

當點擊這些項目時,我想採取特定的操作,而不是覆蓋整個超級視圖的通用操作。不幸的是,在我的孩子控制的TouchDown事件中,我不知道如何在這裏停止事件。我知道我可以創建一個kludge國旗,但這似乎是錯誤的路要走。

有什麼建議嗎?

James

+0

您是否能夠顯示視圖設置的簡化片段?您的「子控件」按鈕是否設置了動作和目標,然後容器是帶有輕擊手勢識別器的UIView? –

+0

@ marcus.ramsden - 是的,它是一個帶有UITapGestureRecognizer的UIView容器和一個小孩的按鈕。 –

+0

正在進一步測試。創建一個只有視圖容器和子控件的沙箱,並且這個場景工作正常。所以它一定是別的。也許它是在一個UITableView ...不確定的事實。如果我發現任何東西,我會回到這裏。 –

回答

0

好的我有一個解決方案。完全是我的問題。我在試圖讓所有的觸摸工作,並在一次我在UITapGestureRecognizer超視圖設置cancelTouchesInView = true。雖然這並未阻止其他觸發事件的發生,但無論出於何種原因觸及到超視圖。我明白這個解釋可能沒有道理,但那就是它。仍然試圖圍繞iOS如何觸摸我的頭。

相關問題