抽屉tableview:通过拉下来解雇

时间:2014-01-18 23:00:30

标签: ios objective-c uitableview

我已经构建了一个类似抽屉的“窗口”,当用户触摸按钮时会出现该窗口。抽屉从屏幕底部动画并填满整个屏幕。

抽屉实际上是UITableViewController,因此这个抽屉里有一张桌子。

如果我的行数很少,则用户可以点击标题(实际上是透明按钮),抽屉将向下滑动,它将被取消。请参见下图,其中紫色实际上是抽屉下方的视图控制器。

enter image description here

另一方面,当行数很多时,所有的屏幕都填满了表格视图的行;因此没有标题可见。所以我想要有以下行为:当滚动到tableview的顶部时,如果用户向下滑动,抽屉将从屏幕底部消失。你会如何实现?每当我们位于tableview的顶部时添加手势?

2 个答案:

答案 0 :(得分:1)

UITableView实际上是UIScrollView的子视图。您应该能够实现UIScrollViewDelegate并实现“scrollViewDidScroll:”方法。因此,当您的桌子滚动时,会被调用。您可以检测内容偏移量,如果它超过了表格的顶部,则可以忽略该视图。您可能需要确保在桌面上启用了反弹,以便在您禁用它时它可以越过顶部。您可能需要使检测点基本上超过顶部,因此对用户来说这不是一个糟糕的体验。

答案 1 :(得分:0)

extension "Your CollectionView/TableView Controller" : UIScrollViewDelegate {
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView.contentOffset.y < 0{
            // ......
        }
    }
}