滚动时的背景alpha转换

时间:2014-01-06 16:21:07

标签: ios iphone objective-c animation uiscrollview

在页面中,我使用滚动视图来显示两个视图。要滚动到每个视图,我必须以不同的方式更改背景alpha(或者我必须显示不同的图像)。

如何在滚动时从一个图像到第二个图像进行过渡效果?

我想要与推特iPhone应用程序个人资料页面顶部滚动视图转换完全相同。

3 个答案:

答案 0 :(得分:2)

您将不得不将某个对象设置为UIScrollViewDelegate,然后重载函数scrollViewDidScroll:。然后,您可以获取scrollview的当前偏移量,并根据需要设置UI中的任何变量。

-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    //(Whatever you want to do here based off of scrollView.contentOffset)
}

或者,您可以在同一个委托中使用scrollviewDidEndScrolling函数,但这不会为您提供实时Alpha混合或背景更改。它只会在滚动视图停止移动时触发。

答案 1 :(得分:1)

更改背景颜色或UIView的alpha,如下所示:

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGFloat alpha = scrollView.contentOffset.x/320*0.8 ; // 0.8 is the maximum alpha allowed /
    self.myView.backgroundColor = RGBACOLOR(0, 0, 0, alpha);
    //self.myView.alpha = alpha;
}

答案 2 :(得分:0)

如果要在滚动查看时更改背景,则应覆盖以下两个功能:

-(void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView;
-(void)scrollViewWillEndDecelerating:(UIScrollView *)scrollView;