我有一个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;
}
}