1

对于 iOs 应用程序,我想在 Windows Phone 7 中重新创建集线器的视差效果。我可以使用以下代码来实现它:

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

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

但效果并不完美。在 WP7 中,在集线器的最后一页上,背景图像的右侧与视图的右侧完美契合。

在这里,如果我的图像小于我的滚动视图宽度/2,我可以看到我的 viewController 背景颜色...

截屏

我想根据滚动视图 contentSize.width、image.frame.size.width 和新的 scrollview.contentOffset.x 来获取图像的新 x 位置。目标是在滚动视图的最后一页上,我的背景图像位置是

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

请帮我 !谢谢 !

4

1 回答 1

2

知道了 !这是我的功能:

-(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)
  • scrollView (UIScrollView pageEnabled 我不知道 contentSize.width)

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

于 2012-04-10T11:47:40.393 回答