用于一个视图控制器的RTL语言uipageviewcontroller curl动画

时间:2014-10-29 08:27:10

标签: ios objective-c uipageviewcontroller

我需要从右到左执行uipageviewcontroller的转换。所以我看一下thisthis个例子。但不同之处在于我一次只能显示一个viewcontroller,pageViewController:spineLocationForInterfaceOrientation:只能返回UIPageViewControllerSpineLocationMin而不是UIPageViewControllerSpineLocationMax。这就是我到目前为止所做的。

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {

NSUInteger index = [(APPChildViewController *)viewController index];

if (index == 0) {
    return nil;
}

// Decrease the index by 1 to return
index--;

return [self viewControllerAtIndex:index];}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {

NSUInteger index = [(APPChildViewController *)viewController index];

index++;

if (index == 15) {
    return nil;
}

return [self viewControllerAtIndex:index];}

- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController
               spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation {
UIViewController *currentViewController = [self.pageController.viewControllers objectAtIndex:0];
NSArray *viewControllers = [NSArray arrayWithObject:currentViewController];
[self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];

self.pageController.doubleSided = NO;
//Return the spine location
return UIPageViewControllerSpineLocationMin;
}


如何使用UIPageViewControllerSpineLocationMin?使卷曲正常工作?我也不能使用基于页面的应用程序模板。

1 个答案:

答案 0 :(得分:0)

根据this我找到了解决方案。这是代码。

- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation {
UIViewController *currentViewController = [self.pageController.viewControllers objectAtIndex:0];
NSArray *viewControllers = [NSArray arrayWithObject:currentViewController];
[self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:YES completion:NULL];

self.pageController.doubleSided = NO;
return UIPageViewControllerSpineLocationMax;
}