2016-05-01 73 views
0

我有ViewController,其中有一个UIView视图和一个TableView 里面。视图有很大的高度,所以我想在用户开始滚动表格时隐藏它 - 所以表格现在正在整个屏幕上。 要做到这一点,我使用这种方法。Pause TableView滚动

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

我隐藏视图与动画 - 所以它需要几分钟的时间隐藏。问题是 - 当用户开始滚动表格并且视图开始变小时 - 表格的顶部单元格中的一些顶部单元格已经不在显示,因为它们在顶部。

enter image description here enter image description here

我想暂停滚动 - 使之可以开始视图高度降低之后。另外 - 我担心用户可能会感到奇怪。

回答

2

您需要根据用户滚动来改变高度以使其高效。

覆盖另一个委托功能

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    myView.heightConstraint = myView.originalHeight - scrollView.contentOffset.y; 
} 

contentOffset财产给你x的电流量,Y从原点滚动视图滚动。

1

你可以做的是,你可以给你的tableView整个屏幕,并以任何你想要的高度进行另一个视图,并使其成为你的tableView的标题视图。所以现在视图将滚动为您的tableView卷轴。这是你想要的?

[tableView setHeaderView:<your-custom-header-view>];