1

iOSアプリの場合、WindowsPhone7でハブの視差効果を再現したいと思います。次のコードを使用して到達できます。

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

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

しかし、効果は完璧ではありません。WP7では、ハブの最後のページで、背景画像の右側がビューの右側に完全にフィットします。

ここで、画像がscrollview width / 2よりも小さい場合は、viewControllerbackgroundColorを表示できます...

スクリーンショット

scrollview 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(contentSize.widthがわからないUIScrollView pageEnabled)

結果は完璧です。誰かが説明を求めているなら、私に聞いてください!

于 2012-04-10T11:47:40.393 に答える