当用户滚动UIScrollView时,我正在尝试创建一个非常简单的视差效果。我在我的scrollview上使用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...");
}
答案 0 :(得分: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);
}