UIPageView水平滑动和垂直滑动

时间:2015-04-14 10:38:13

标签: ios objective-c uipageviewcontroller swipe-gesture

我有以下情况:

在故事板中我有9个观点。 3"章节"每章都有2"页"。

当用户向上或向下滑动时,他们可以在第1章,第2章和第3章之间切换。 当用户进入第1,2或3章并向左滑动时,他们会获得该章节中的页面。

有关故事板的示意图,请参见下图:

enter image description here

所有这些视图都是通过pageviewcontroller加载的。

这可以通过iOS中的基本滑动手势轻松完成,但我们希望在您滑动时滚动。

到目前为止我所拥有的:

用户可以通过以下代码在3章之间滑动(滚动):

chapters = @[@"H1", @"H2", @"H3"];
UIPageViewController *pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"PageViewControllerStart"];
pageViewController.dataSource = self;

// Create all of the view controlers that display each page on the story board
viewControllers = [NSMutableArray array];

for (int i = 0; i < chapters.count; i++) {
    start *vc = [self.storyboard instantiateViewControllerWithIdentifier:chapters[i]];
    vc.index = i;
    [viewControllers addObject:vc];
}

// Set the default page to the first in the array and send it to the page view controller
NSArray *defaultViewController = [NSArray arrayWithObject:viewControllers[slideNum]];

///
pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStyleScroll navigationOrientation:UIPageViewControllerNavigationOrientationVertical options:nil];

pageViewController.dataSource = self;
pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height - 0.01);

[pageViewController setViewControllers:defaultViewController direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:nil];
///

    [self addChildViewController:pageViewController];
    [self.view addSubview:pageViewController.view];
    [pageViewController didMoveToParentViewController:self];

此代码生成&#34;章节&#34;垂直滑动滚动。

但是我如何实现&#34;页面&#34;在这段代码中,当用户在章节上向左滑动时,它们会水平滚动吗?

1 个答案:

答案 0 :(得分:0)

我认为您应该使用更模块化的故事板,为页面添加一个回收的VC,您可以加载它的多个副本但分配不同的内容。故事板不适用于重复布置相同类型的视图。

您将需要使用嵌套滚动视图。一个滚动视图上下翻页包含许多滚动视图,左右滚动页面。您可以将-pagingEnabled设置为正确翻页。