【发布时间】: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;
}
}
然后我尝试使用此方法查找当前页面,尽管每当我滚动UIPageViewController 时contentOffset 保持不变:
-(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