【问题标题】:How to curl the page like iBook with fingure movement n iOS?如何在iOS上用手指移动像Book一样卷曲页面?
【发布时间】:2013-06-06 06:26:24
【问题描述】:

你好朋友,我希望我的页面像在 iBook 页面中一样卷曲,并且页面应该根据手指移动而转动。请帮忙 提前谢谢..

【问题讨论】:

  • 谁能帮帮我?

标签: animation ibooks page-curl


【解决方案1】:

你需要实现 UIPageViewController

- (void)viewDidLoad
{
    [super viewDidLoad];
    [self addChildViewController:self.pageViewController];
    [self.view addSubview:self.pageViewController.view];
    [self.pageViewController didMoveToParentViewController:self];
    self.pageViewController.view.frame = self.view.bounds;
}

- (UIPageViewController *)pageViewController
{
    if (!_pageViewController) {
        _pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
                                                              navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal
                                                                            options:nil];
        _pageViewController.dataSource = self;
        _pageViewController.delegate = self;
        [_pageViewController setViewControllers:@[self.viewControllers.firstObject]
                                      direction:UIPageViewControllerNavigationDirectionForward
                                       animated:NO
                                     completion:nil];
    }
    return _pageViewController;
}

- (NSArray *)viewControllers // provide your view controller for each page
{
    if (!_viewControllers) {
        _viewControllers = @[
                             [UIViewController new],
                             [UIViewController new],
                             [UIViewController new],
                             [UIViewController new],
                             [UIViewController new],
                             ];
    }
    return _viewControllers;
}

#pragma mark - UIPageViewControllerDataSource

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
{
    NSUInteger index = [self.viewControllers indexOfObject:viewController];
    if (index == 0) {
        return nil;
    }
    return [self.viewControllers objectAtIndex:--index];
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
    if ([self.viewControllers.lastObject isEqual:viewController]) {
        return nil;
    }
    NSUInteger index = [self.viewControllers indexOfObject:viewController];
    return [self.viewControllers objectAtIndex:++index];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多