我的ViewController里面有UIView
视图和一个TableView 表。视图有很高的高度所以我想在用户开始滚动表时隐藏它 - 所以表现在占据整个屏幕。
为此,我使用这种方法。
func scrollViewWillBeginDragging(scrollView: UIScrollView) {
//hide view or decrease it height
}
我用动画隐藏视图 - 所以隐藏起来需要很少的时间。问题是 - 当用户开始滚动表并且视图开始变小时 - 表的一些顶部单元格已经没有显示,因为它们位于顶部。
我想暂停滚动 - 这样只有在视图高度降低后才能开始滚动。此外 - 我担心这对用户来说可能很奇怪。
答案 0 :(得分:2)
您需要根据用户滚动进行高度更改,以提高效率。
覆盖另一个委托函数
func scrollViewDidScroll(_ scrollView: UIScrollView) {
myView.heightConstraint = myView.originalHeight - scrollView.contentOffset.y;
}
contentOffset属性为您提供当前从滚动视图滚动的x,y的数量。
答案 1 :(得分:1)
您可以做的是,您可以将tableView
放在整个屏幕上,并以您想要的任何高度制作另一个视图,并将其作为tableView
的标题视图。所以现在视图将滚动为tableView
滚动。这是你在找什么?
[tableView setHeaderView:<your-custom-header-view>];