ios - 内容偏移量保持不变

标签 ios objective-c uiscrollview uipageviewcontroller

我的应用程序中有一个 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 委托(delegate)设置为 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);
}

这是为什么?

最佳答案

我使用 UIPageViewController 的委托(delegate)方法而不是 scrollView 使其工作。这是我的解决方案:

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

关于ios - 内容偏移量保持不变,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35033023/

相关文章:

ios - UITableView ScrollView 不会到框架顶部

ios - 添加约束后仍然存在不明确的可滚动内容高度错误

ios - UINavigationController 大标题和多个 UIScrollViews/UITableViews

ios - BOOL 未保存在用户默认值中

iphone - 麦克风和扬声器反馈

ios - 在 iOS 中点击关闭设备低电量警报时,应用程序导航到主屏幕

ios - 使用 UIScrollView 和 setContentSize 时设置正确的大小

iphone - ios coreplot 多个y轴

ios - UISearchController 在 iOS 13 上无法正常工作

ios - 将 PubNub 集成到 Swift 框架中