从滚动底部开始隐藏UIView

时间:2015-07-22 22:46:31

标签: ios swift uitableview

我有一个tableView,当用户向下滚动时,我想在其上方隐藏UIView。目前,滚动会从上到下隐藏UIView

如何隐藏从底部到顶部 UIView(如下例所示):

enter image description here enter image description here enter image description here

2 个答案:

答案 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;
}