1

UIScrollView を使用してアプリのメイン メニューを作成する必要があります。その中にクリックできる画像がいくつかあります。UIScrollView をスクロールすると、バックグラウンドで移動する他の 2 つのビューが必要になり、視差効果が生じます。誰かが私にサンプルコードを提供できますか? 私は一緒に仕事をしようとしています

-(void) scrollViewDidScroll:(UIScrollView *)scrollView

しかし、私のプロジェクトへの適用に関する生産的な例は見つかりません。

4

2 に答える 2

4

どう?imageViewは、UIScrollViewの半分の速度で上にスクロールします。

    float y = scrollView.contentOffset.y;
    CGRect imageFrame = self.imageView.frame;
    imageFrame.origin.y = y/2;
    self.imageView.frame = imageFrame;
于 2012-02-17T19:49:28.117 に答える
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

その前に、ページネーションと 3 つのラベルを含む 2 番目の UIScrollView があります。あれは と呼ばれて_scrollViewいます。

于 2012-11-20T05:05:29.993 に答える