2012-04-08 27 views
1

的iOS應用視差滾動效果我想重新樞紐的Windows Phone中的視差效果7. 我可以通過使用此代碼實現它:iPhone:喜歡WP7的Metro UI

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 

    CGRect lc_frame = hubBackgroundImageView.frame; 
    lc_frame.origin.x=-hubItemsScrollView.contentOffset.x/2; 
    hubBackgroundImageView.frame = lc_frame; 
} 

但效果並不完美。在WP7中,在集線器的最後一頁上,背景圖像的右側完全適合視圖的右側。

在這裏,如果我的形象比我的滾動視圖寬度/ 2小,我可以看到我的viewController的backgroundColor ...

screenshot

我想獲得的圖像取決於新的x位置scrollview的contentSize.width,image.frame.size.width和新的scrollview.contentOffset.x。 的目標是,滾動視圖的最後一頁上我的背景圖片的位置是

backgroundImage.frame.origin.x = -backgroundImage.frame.size.width+self.view.frame.size.width; 

請幫幫我!謝謝 !

回答

2

Got it!這裏是我的功能:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView{ 

    float paralaxPlacementRatio=scrollView.contentOffset.x/(scrollView.contentSize.width-scrollView.frame.size.width); 

    CGRect lc_frame = backgroundImageView.frame; 
    lc_frame.origin.x=-backgroundImageView.frame.size.width*paralaxPlacementRatio+(self.view.frame.size.width*paralaxPlacementRatio); 
    backgroundImageView.frame = lc_frame; 
} 

我的觀點的結構是:

  • backgroundImageView(即UIImageView的我不知道寬度)
  • 滾動視圖(UIScrollView的pageEnabled,我不知道contentSize .width)

結果是完美的,如果有人想要解釋,請問我!