0

我有一个UIScrollView里面有一堆文字。当用户向上滚动时,我在顶部创建了一个小颜色到透明的视图,这样文本看起来就不会掉下来。

我的滚动视图工作正常,代表设置等。

这一切都很好,花花公子,我得到了这个(这就是我想要的):

滚动前:

在此处输入图像描述

当我开始向下滚动时,它会变得像它假设的那样:

在此处输入图像描述

当我向上滚动时,它会缩小,就像它假设的那样:

在此处输入图像描述


问题: 但是!如果我快速轻弹它,似乎scrollViewDidScroll:(UIScrollView *)scrollView调用的速度不够快,并且渐变的框架永远不会更新。我需要检查另一个 scollView 委托方法吗?或者我可能会以错误的方式处理渐变。

在此处输入图像描述


这是我scrollViewDidScroll:(UIScrollView *)scrollView处理更新渐变框架的方法:

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

    //Only want our gradient to show if text is off screen
    if (scrollView.contentOffset.y >= 0) {

        //Dont want our gradient to be larger than 8 pixels tall
        if (scrollView.contentOffset.y <= 8) {

            //Grab our view that draws gradient frame
            CGRect frm = self.shadeView.frame;

            //Set it the size to be absolute value of our scrollView offset
            frm.size.height = abs(scrollView.contentOffset.y);

            //Set the frame
            self.shadeView.frame = frm;
        }
    }
    //If the scrollView is scrolled to the top we don't want to show our gradient so we set it's height to 0. 
    else {
        CGRect frm = self.shadeView.frame;
        frm.size.height = 0;
        self.shadeView.frame = frm;
    }
}
4

0 回答 0