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 的实例。其他任何人都想弄清楚这一点,我做了一点hacky,但它有效。

/* 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 回答