2017-08-11 91 views
0

目前我正在使用其中的scrollView進行自定義視圖。我現在有以下觀點層次結構:UIScrollView消耗觸摸事件

-> UIView (self) 
    |--> UIScrollView 
     |---> UIView (itemsContainer) 
     |---> UIView (testView) 
     |---> UIView (testView) 
     |---> UIView (testView) 

等(我在這裏有大約100個testViews)。請注意,「testView」只是一個例子(而不是它,它可能是你喜歡的任何視圖)

TestView是從xib創建的,並有一個UIButton。 ScrollView消耗所有觸摸,並且按鈕的touchUpInside事件不會觸發。我怎樣才能從ScrollView轉發觸摸到它的子視圖?

請注意,如果我從層次結構中刪除ScrollView並將itemsContainer放在沒有它的情況下,所有都將正常工作。另外:我需要不僅向UIButtons轉發接觸。例如,它可以是testView上的5個按鈕和2個開關。我怎麼解決這個問題?

+0

https://stackoverflow.com/questions/3132147/uibutton-inside-uiscrollview-doesnt-fire-on-tap? – Larme

+0

只是關於你的問題的一個側面說明:在你的情況下使用UIScrollView是一個糟糕的做法使用UITableView而不是 – zombie

+0

可能重複的[ScrollView手勢識別器吃所有觸摸事件](https://stackoverflow.com/questions/16882737/scrollview-手勢識別器 - 吃所有觸摸事件) – Rishabh

回答

0

嘗試使用:

[scrollView setExclusiveTouch:YES]; 
[scrollView setUserInteractionEnabled:YES]; 
[scrollView setCanCancelContentTouches:YES]; 
[scrollView setDelaysContentTouches:YES]; 
+0

這沒有幫助 –

+0

如何使用此解決方案。 https://stackoverflow.com/questions/4941570/iphone-click-view-behind-transparent-uiscrollview?rq=1 如果不工作,你可以嘗試在滾動視圖添加tapGestureRecognizer和處理的選擇方法類似於這個問題: https://stackoverflow.com/questions/27193136/how-to-send-the-touch-events-of-uiscrollview-to-the-view-behind-it?rq=1 –