2012-04-02 96 views
7

使用分頁實現水平滾動視圖的最佳實踐是什麼,每頁有一個視圖控制器?帶子視圖控制器的分頁滾動視圖

PageControl示例仍然是實現此目的的最佳方式,因爲iOS5具有視圖控制器容器/遏制的API?

+0

你現在使用什麼方法?我使用蘋果PageControl示例中顯示的方法。它的工作原理,但仍然存在一些出現錯誤的情況:旋轉相關,可能是因爲ScrollView不是ViewController。 – AlexWien 2013-05-13 17:22:59

+0

我用UIPageViewControllerTransitionStyleScroll UIPageViewController,遇到了很多邊緣情況下添加新的視圖控制器的滾動視圖的開始和結束,這使得實現比PageControl類型的方法更容易。 – railwayparade 2013-05-13 22:09:28

回答

6

我知道這個問題有點舊了,但從iOS 6開始,UIPageViewController有一個新的過渡樣式屬性UIPageViewControllerTransitionStyleScroll,它允許您使用頁面控制器來處理像您這樣的用例,而不是在頁面之間滾動iBooks風格的頁面捲曲轉換。

您還應該觀看2012年WWDC視頻編號223 - Enhancing User Experience with Scroll Views,他們基本上將使用您描述的方法的舊應用程序轉換爲具有滾動樣式轉換的新UIPageViewController。

-1

我覺得UIPageViewController能水平走:

- (id)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientation:(UIPageViewControllerNavigationOrientation)navigationOrientation options:(NSDictionary *)options 

而且

enum { 
    UIPageViewControllerNavigationOrientationHorizontal = 0, 
    UIPageViewControllerNavigationOrientationVertical = 1 
}; 
typedef NSInteger UIPageViewControllerNavigationOrientation; 

http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html

+0

感謝您的回覆。在頁面之間移動時,UIPageViewController僅支持翻頁。我正在尋找在多個頁面之間水平滾動的最佳方式。在頁面控制的例子中,每個視圖控制器只有一個頁面 – railwayparade 2012-04-10 22:24:33

2

我的答案是,這取決於你的目標。如果你想盡可能高效地創建一個應用程序,那麼我只會使用它在示例代碼中完成的方式。我之前使用過它,我會再次使用它。另一方面,如果您的目標是瞭解視圖控制器遏制,它如何工作以及如何使用它,這可能是一個很好的例子。如果你這樣做,不要忘了查看WWDC視頻「實現UIViewController Containment」(https://developer.apple.com/videos/wwdc/2011/)。

+0

謝謝我觀看WWDC視頻,它不是蘋果公司最棒的視頻之一,非常混亂。該視頻在管理屏幕不同部分的上下文中討論了UIViewController遏制,這與滾動視圖不同。頁面控制示例的問題在於它已過時。沒有故事板等 – railwayparade 2012-04-11 22:23:52

-1

如果您將視圖控制器視圖(myViewControllerOne.view)添加到UIScrollView - 然後將它們適當地框定爲水平顯示 - 當用戶與視圖內的視圖交互時,View Controller中的方法將被調用。

通過這個我的意思是如果你有MyViewControllerOne.view作爲你的滾動視圖內的子視圖,當你滾動到滾動視圖的'頁面'並按下MyViewControllerOne中的附加方法(IBAction等)叫做。

這應該會爲您提供所需的所有功能,例如添加UI元素,表格,另一個滾動視圖等。這些元素將從其原始視圖控制器中進行控制。

希望這會有所幫助!

+0

謝謝RachelD多數民衆贊成在我做了什麼。問題更多地是關於什麼是最佳實踐。注意將一個視圖控制器視圖添加到其他視圖層次結構可能會有問題。見http://blog.carbonfive.com/2011/03/09/abusing-uiviewcontrollers/ – railwayparade 2012-04-11 22:19:01

+0

這不是正確的方法,你不應該這樣做! – 2013-10-22 09:25:04

2

顯示iOS5的最佳做法是繼續使用與PageControl示例相同的方法。這是一個控制器類(注意不是視圖控制器)。使用每個頁面的子視圖控制器。

到目前爲止,還沒有更好的方法來實現使用iOS5中包含的視圖控制器遏制方法的分頁滾動視圖。

相關問題