我有一个tableView
,当用户向下滚动时,我想在其上方隐藏UIView
。目前,滚动会从上到下隐藏UIView
。
如何隐藏从底部到顶部 UIView
(如下例所示):
答案 0 :(得分:1)
这有点像黑客,但可能是最简单的方法:
在故事板中,将UIView
放在顶部(让我们将其称为“顶栏”)在滚动视图外面,并将其排列为< em>在滚动视图后面。确保屏幕顶部的高度和位置固定(宽度应根据屏幕宽度而变化)。
然后,在您曾经拥有UIView
的地方,放置一个相同大小的完全透明视图,并禁用用户交互。您还可以在此视图的底部放置一个渐变,以淡化其后面的顶部条(即,渐变应该在顶部完全透明,顶部条的底部背景颜色应该在底部)。现在,您的固定位置顶栏应该通过这个透明窗口显示,该窗口向上滚动并且不在视线范围内。丑陋是滚动位置指示器包括这个透明窗口。
“正确”执行此操作需要您将类设置为滚动tableView
的委托,实现scrollViewDidScroll
方法并在该方法内部调整自动布局约束(或在手动布局时查看位置)根据scrollView.contentOffset.y
。此选项的起点也是顶部栏位于tableView
之后和之外,但您可以调整tableView
的上边缘位置而不是透明视图。
答案 1 :(得分:0)
您需要跟踪滚动方向。例如:
-(void) scrollViewDidScroll:(UIScrollView *)scrollView
{
CGPoint currentOffset = scrollView.contentOffset;
if (currentOffset.y > self.lastContentOffset.y) {
// (Downward) Show my View
} else {
// (Upward) Hide My View
}
self.lastContentOffset = currentOffset;
}