2014-04-27 77 views
1

我試圖以全景方式在UIPageView背後實現移動背景圖片。 (類似於Android主屏幕的概念)在UIPageView背後移動背景

PageView具有轉換風格「滾動」。

所有我發現到現在用的是委託「didFinishAnimation」的方法:

(void)pageViewController:(UIPageViewController *)pageViewController didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed 

使用這種方法的背景移到新的一頁已經達到之後。我希望它同時發生。

有什麼辦法來同步這個imageview的位置與當前頁面視圖的拖動位置嗎?

回答

3

承認這是一種黑客行爲,但在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 
+0

謝謝你,這是要走的路! – riisemichi