当superView位于顶部时,继续滚动UITableView

时间:2018-01-10 21:04:58

标签: ios uitableview uigesturerecognizer

我有一个MainViewControllerbottomSheet作为childViewController。

bottomSheet首先显示在MainViewController的1/4上,附加UIPanGestureRecognizerUITableView作为{{1}的子视图固定到视图的4个边缘。

我可以平移底部工作表并将其移动到屏幕顶部。然而,当它到达顶部时,我需要释放我的手指并再次平移,以便bottomSheet接收触摸。

我需要一种方法,所以当视图位于屏幕顶部时,它会开始滚动tableView。

我所尝试的是UITableView的{​​{1}}状态和UIPanGestureRecognizer的{​​{1}},这给了我一个最终结果,但有一些问题,因为它输了系统默认动画

有没有办法继续滚动tableView而不释放我的手指?

1 个答案:

答案 0 :(得分:0)

在平移之前给tableView它的完整高度,其中 tableViewHeightCon 是作为IBOutlet拖动的tableView的高度约束

override func viewDidLayoutSubviews() {

      self.tableViewHeightCon.constant = numberOFCells*cellHeight;

    }

并且当您检测到视图最多时,会更改表视图的顶部约束,如此

    func scrollTableAutomatic
   {
       UIView.animate(withDuration: 3.0) {

        self.tableViewTopCon.constant -= self.tableView.frame.size.height - self.view.frame.size.height


    }

   }