暂停TableView滚动

时间:2016-05-01 07:25:18

标签: ios objective-c swift uitableview

我的ViewController里面有UIView 视图和一个TableView 。视图有很高的高度所以我想在用户开始滚动表时隐藏它 - 所以表现在占据整个屏幕。 为此,我使用这种方法。

func scrollViewWillBeginDragging(scrollView: UIScrollView) {
        //hide view or decrease it height
    }

我用动画隐藏视图 - 所以隐藏起来需要很少的时间。问题是 - 当用户开始滚动表并且视图开始变小时 - 表的一些顶部单元格已经没有显示,因为它们位于顶部。

enter image description here enter image description here

我想暂停滚动 - 这样只有在视图高度降低后才能开始滚动。此外 - 我担心这对用户来说可能很奇怪。

2 个答案:

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