【问题标题】:Content offset stays constant内容偏移保持不变
【发布时间】:2016-05-04 03:33:45
【问题描述】:

我的应用中有一个UIPageViewController,设置如下:

self.pageViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"MainPageViewController"];
self.pageViewController.dataSource = self;
self.pageViewController.delegate = self;
self.pageViewController.view.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height);
[self addChildViewController:self.pageViewController];
[self.view addSubview:self.pageViewController.view];
[self.pageViewController didMoveToParentViewController:self];

我已使我的 UIViewController 符合 UIScrollViewDelegate 并添加此代码以将 scrollView 委托设置为 self

    for (UIView *currentView in self.pageViewController.view.subviews) {
    if ([currentView isKindOfClass:[UIScrollView class]]) {
        UIScrollView *scrollView = (UIScrollView *)currentView;
        scrollView.delegate = self;
        break;
    }
}

然后我尝试使用此方法查找当前页面,尽管每当我滚动UIPageViewControllercontentOffset 保持不变:

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
CGFloat pageWidth = scrollView.frame.size.width;
NSInteger page = scrollView.contentOffset.x / pageWidth;

NSLog(@"Content offset.x: %.f", scrollView.contentOffset.x);
}

这是为什么?

【问题讨论】:

    标签: ios objective-c uiscrollview uipageviewcontroller


    【解决方案1】:

    我使用UIPageViewController 的委托方法而不是滚动视图使其工作。这是我的解决方案:

    -(void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray<UIViewController *> *)previousViewControllers transitionCompleted:(BOOL)completed
    {
        if (completed) {
            NSInteger currentIndex = [self.navViewControllers indexOfObject:pageViewController.viewControllers[0]];
        }
    }
    

    【讨论】:

    • 我从 PageViewController 的 scrollView 的 contentOffset.x 中得到了令人困惑的值,这个解决方案是一个很棒(甚至更干净)的解决方法。
    猜你喜欢
    • 2015-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-17
    • 1970-01-01
    • 2022-08-31
    • 2011-06-07
    • 2010-12-07
    相关资源
    最近更新 更多