2011-07-11 31 views
2

可能重複的子視圖:
UISlider and UIScrollViewUISlider作爲UIScrollView的

使用的是iOS SDK 4.3。當我嘗試拖動滑塊結束滾動時,我發現當我有一個UISlider作爲UIScrollView的子視圖時,這當然是水平滾動的。

這將是一個糟糕的用戶體驗。任何人都知道如何實現這個以避免這個問題。

感謝

回答

1

你可以看在UISlider觸摸事件,並在觸及事件,你可以設置scrollEnabled爲NO的UIScrollView中,然後在觸摸的內心&之外的事件,它設置爲YES再次。看看是否爲您解決了這個問題,還是在UISlider收到任何觸摸事件之前滾動UIScrollView?

編輯:正如諾亞指出的,這是行不通的。你可以做的是UIScrollView的子類,並覆蓋touchesBegan,touchesMoved和touchesEnded方法。在那裏,您可以檢查觸摸是否與包含UISlider的區域相對應,如果是,則手動將觸摸傳遞給滑塊。我正在爲一個我正在做的項目做了這個工作,它在滾動視圖中有一個撥號(我自己製作的自定義控件)。我需要能夠在沒有滾動的情況下轉動撥號盤。當我檢測到在觸摸屏內部觸摸到觸碰開始時,我將禁用滾動視圖上的滾動,然後在touchesMoved中將其傳遞給撥號。你也可以看看hitTest:withEvent:方法來攔截那裏的一些觸摸。

+1

滾動視圖處理觸摸轉發到其子視圖的方式意味着滑塊甚至不會在滾動視圖丟棄滾動視圖之前獲取觸摸屏事件。這不起作用。 –