1

ユーザーが UIScrollView をスクロールするときに、非常に単純な視差効果を作成しようとしています。スクロールビューで scrollViewDidScroll メソッドを使用していますが、すべて機能しています。そのメソッドからすべてをログに記録できるので、UIScrollView がスクロールされたときにメソッドが起動されていることがわかります。問題は、UIScrollView のコンテンツに加えようとした変更が失敗することです。おそらくレンダリングの問題ですか?UIScrollView はスクロール中にコンテンツを再レンダリングしませんか?

UIImageView(imageView) のフレームと中心点を変更しようとしましたが、何も機能していません。何が起こっているのかについてのアイデアはありませんが、エラーなどは発生していません。

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

    float y = body.contentOffset.y;

      imageView.center = CGPointMake(imageView.bounds.size.width/2, (imageView.bounds.size.height/2) - y/2);

    // Tried this as well
    //[imageView setFrame:CGRectMake(0, 0, imageView.bounds.size.width, imageView.bounds.size.height + (y * 2))];

    NSLog(@"We are scrolling...");

}
4

1 に答える 1

2

それを理解すると、実際には、使用して ScrollView 内の ImageView のインスタンスを取得する必要がありました。これを理解しようとしている他の人は、少しハッキーにしましたが、うまくいきます。

/* Paralax Scrolling */
-(void)scrollViewDidScroll:(UIScrollView *)body {

    float y = body.contentOffset.y;

    // When adding (body) image view to scroll view I assigned a tag of 100 to it.
    [body viewWithTag:100].center = CGPointMake([body viewWithTag:100].bounds.size.width/2, ([body viewWithTag:100].bounds.size.height/2) + y/2);

}
于 2013-06-26T18:47:36.823 に答える