我正在處理我的視圖控制器(UIViewController的自定義子類)中的幾個我的UI組件觸摸。它有方法touchesBegan:withEvent:
,touchesMoved:withEvent:
和touchesEnded:withEvent:
。它工作正常。然後我添加一個滾動視圖(UIScrollView)作爲層次結構中的頂視圖。UIScrollView防止touchesBegan,touchesMoved,touchesEnded視圖控制器
現在我的視圖控制器上的觸摸處理程序不起作用。他們不會被叫到。有趣的是,我在滾動視圖中有各種其他UI組件可以工作。一些是按鈕,一些是自定義視圖,它們定義了自己的touchesBegan:withEvent:
等。唯一不起作用的是視圖控制器上的觸摸處理程序。
我想也許這是因爲滾動視圖攔截出於其自身目的的接觸,但我的子類的UIScrollView,只是看看,如果我能得到它的工作我從touchesShouldCancelInContentView:
返回從touchesShouldBegin:withEvent:inContentView:
YES
總是和NO
始終。仍然不起作用。
如果它有所不同,我的視圖控制器是在標籤欄控制器內,但我認爲它不相關。
有沒有人有這個問題,並有一個現成的解決方案?我的猜測是滾動視圖猴子響應鏈。我可以把它猴子回來嗎?我猜如果我不能找出其他東西,我會將我的滾動視圖下的頂層視圖作爲自定義視圖,並將消息轉發給視圖控制器,但似乎很枯燥。
按照我的答案在這裏http://stackoverflow.com/questions/1685956/uiscrollview-touchesbegan/17759373#:
我通過改變泛手勢識別器的行爲,所以它需要兩個手指克服了這個17759373 – Rajneesh071