2010-07-12 98 views
11

我正在開發我的第一個iPhone應用程序,我將非常感謝您對我遇到的問題的輸入。iPhone - 爲水平分頁和垂直滾動嵌套UIScrollViews

我正在尋找實現水平和垂直滾動。我希望水平滾動分頁,而不垂直分頁(滾動「正常」)。將pagingEnabled設置爲YES的單個UIScrollView將雙向翻頁。自然的解決方案將嵌套在另一個UIScrollView,但是當我這樣做時,我不能讓「內部」UIScrollView滾動。看來外一個是「吃」了所有的點擊事件,像:

UIScrollView : paging horizontally, scrolling vertically?

我讀到一些關於「內滾動」被當在SDK 3.0改善,實際上當我添加內的UITableView,而不是一個UIScrollView的滾動工作完美無瑕。由於UITableView的子類UIScrollView我想我應該可以通過創建我自己的UIScrollView的子類來實現我想要的行爲。

這是正確的做法嗎?如果是這樣,這個子類應該是什麼樣子?

回答

9

這可以立即與SDK一起使用。請參閱Scrolling MadnessApple's UIPageControl sample以獲取有關如何使用每個頁面的視圖控制器實現分頁水平滾動的指導原則。

作爲子視圖添加到外部UIScrollView中的嵌套UIScrollView應具有與容器相同的框架高度。如果你這樣做,那麼外面的UIScrollView將通過垂直滾動事件傳遞給子視圖。我的應用程序有三個級別的UIScrollView和UIWebView嵌套,我發現Cocoa真的很聰明,可以將事件傳遞給我想要的事件,只要設置了我的框架大小,以便只有一個視圖可以滾動(contentSize> frame)每個軸。

+0

謝謝你。這確實可以開箱即用。我相信垂直滾動頁面的頂層視圖必須是UIScrollView。最初,我有一個UIView下的垂直滾動條,這不能按需要工作。還要記住設置垂直滾動條的contentSize。 – user621267 2012-06-21 08:44:19

0

我一直在使用由安德烈Tarantsov這個偉大的lib幾個月:SoloComponents

您可以使用它作爲一個「水平的UITableView」與分頁和視圖循環支持。 做得很好,完美的可可風格設計。

0

基於Dylan的回答,在我的情況下,我實際上也必須使內容大小高度與父級和嵌套UIScrollViews相同,以使嵌套UIScrollView垂直滾動。只製作「與容器相同的框架高度」,不如迪倫解釋的那樣:

parentScrollView.contentSize = CGSizeMake(parentScrollView.contentSize.width, desiredContentHeight); 
nestedScrollView.contentSize = CGSizeMake(nestedScrollView.frame.size.width, desiredContentHeight);