从Scroll底部开始隐藏UIView
我有一个tableView
,我想在用户向下滚动时隐藏UIView
。 目前,滚动从顶部到底部隐藏了UIView
。
我怎样才能从底部到顶部 (如下面的例子)隐藏UIView
:
这是一个黑客,但可能是最简单的方法来做到这一点:
在故事板中,将UIView
放置在滚动视图之外的顶部(我们称之为“顶部栏”),并将其排列在滚动视图之后。 确保屏幕顶部的高度和位置是固定的(宽度应根据屏幕的宽度而定)。
然后,在你曾经拥有UIView
地方,放置一个尺寸相同的完全透明的视图,并禁用它的用户交互。 你也可以在这个视图的底部放一个小的渐变来淡化它后面的顶部条(即顶部的渐变应该是完全透明的,底部的顶部条的背景色)。 现在,您的固定位置的顶部栏应该通过向上滚动并且看不见的透明窗口显示。 丑陋的是滚动位置指示器包括这个透明的窗口。
这样做“正常”需要你设置一个类作为滚动tableView
的委托,实现scrollViewDidScroll
方法,并在该方法内根据scrollViewDidScroll
调整自动布局约束(或手动布局查看位置)。 这个选项的起点也是在tableView
后面和后面有一个顶栏,而不是透明视图,而是调整tableView
的顶边位置。
您需要跟踪滚动方向。 例如:
-(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; }