我正试图以全景方式在UIPageView后面实现移动的背景图片。 (类似于android主屏幕的概念)
PageView的过渡风格为“Scroll”。
我直到现在才发现使用委托“didFinishAnimation”方法:
(void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
使用此方法,背景会在达到新页面后移动。我希望它能同时发生。
有没有办法将此imageview的位置与页面视图的当前拖动位置同步?
答案 0 :(得分:3)
虽然它有点hacky但是在iOS 7.1中,页面视图控制器的滚动视图默认没有委托,你可以在不访问任何私有API的情况下成为它的委托。子类UIPageViewController,并在您的子类调用
- (void)viewDidLoad {
[super viewDidLoad];
// other code
NSInteger scrollViewIdx = [self.view.subviews indexOfObjectPassingTest:^BOOL(UIView *subview, __unused NSUInteger idx, __unused BOOL *stop) {
return [subview isKindOfClass:UIScrollView.class];
}];
NSAssert(scrollViewIdx != NSNotFound, @"Failed to find page view controller scroll view");
UIScrollView *scrollView = self.view.subviews[scrollViewIdx];
scrollView.delegate = self; // or whatever
}
然后你可以实现
- (void)scrollViewDidScroll:(UIScrollView *)scrollView