2011-12-17 102 views
1

我需要使用UIScrollView爲我的應用程序創建一個主菜單。我有一些可以點擊的圖像。當我在背景上滾動UIScrollView時,還有其他兩個視圖會移動,從而產生視差效果。 有人可以給我一個示例代碼?我試圖與UIScrollView菜單和視差效果

-(void) scrollViewDidScroll:(UIScrollView *)scrollView 

但我找不到任何關於在我的項目上應用的生產性示例。

回答

2

這是怎麼回事? imageView將向上滾動一半,與UIScrollView一樣快。

float y = scrollView.contentOffset.y; 
    CGRect imageFrame = self.imageView.frame; 
    imageFrame.origin.y = y/2; 
    self.imageView.frame = imageFrame; 
2

這GitHub的倉庫有一個驚人的實現,它工作得很好: https://github.com/ralfbernert/RBParallaxScrolling

這裏是我的代碼的測試,使用具有分頁一個UIScrollView(在前面)和背景的圖像: http://clrk.it/211o3h0A053m

的代碼,不會這招視差原理如下位:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    if (scrollView == _scrollView) { 
     float speedFactor = _headerImageScrollView.contentSize.width/_scrollView.contentSize.width; 
     [_headerImageScrollView setContentOffset:CGPointMake(speedFactor * _scrollView.contentOffset.x, 0)]; 
    } 
} 

在這段代碼中,我有一個包含UIImageView的UIScrollView;我稱之爲_headerImageScrollView

在它的前面,我有第二個UIScrollView與分頁和三個標籤。那個叫做_scrollView