2012-04-08 31 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)

结果是完美的,如果有人想要解释,请问我!