我已经构建了一个类似抽屉的“窗口”,当用户触摸按钮时会出现该窗口。抽屉从屏幕底部动画并填满整个屏幕。
抽屉实际上是UITableViewController
,因此这个抽屉里有一张桌子。
如果我的行数很少,则用户可以点击标题(实际上是透明按钮),抽屉将向下滑动,它将被取消。请参见下图,其中紫色实际上是抽屉下方的视图控制器。
另一方面,当行数很多时,所有的屏幕都填满了表格视图的行;因此没有标题可见。所以我想要有以下行为:当滚动到tableview的顶部时,如果用户向下滑动,抽屉将从屏幕底部消失。你会如何实现?每当我们位于tableview的顶部时添加手势?
答案 0 :(得分:1)
UITableView实际上是UIScrollView的子视图。您应该能够实现UIScrollViewDelegate并实现“scrollViewDidScroll:”方法。因此,当您的桌子滚动时,会被调用。您可以检测内容偏移量,如果它超过了表格的顶部,则可以忽略该视图。您可能需要确保在桌面上启用了反弹,以便在您禁用它时它可以越过顶部。您可能需要使检测点基本上超过顶部,因此对用户来说这不是一个糟糕的体验。
答案 1 :(得分:0)
extension "Your CollectionView/TableView Controller" : UIScrollViewDelegate {
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView.contentOffset.y < 0{
// ......
}
}
}