如何创建上/下可滑动UITableView?

Raj*_*r R 2 uitableview ios uiswipegesturerecognizer swift

我在UIViewController的底部有一个UITableView,现在tableview的高度是100点。 故事板

tableview有20个单元格,tableview的标题视图为100点。而且我在表视图标题中添加了向上的UISwipeGestureRecognizer和向下的UISwipeGestureRecognizer。

现在,我想在向上手势动作中将tableview高度约束常量更改为400,在向下手势动作中将tableview高度约束常量更改为100。

最小化

最大化

  • 现在的问题是,启用表格视图滚动后,手势识别器无法在表格视图标题中工作。
  • 如果禁用了tableview滚动,则手势识别器正在工作。但是,一旦更改了表格视图的高度,便无法查看所有单元格。

rob*_*off 5

这是另一种方法。完全不要使用滑动手势识别器。

而是使桌子始终高出400点。将其设置contentInset.top为300。这将允许表格视图滚动,以便仅在屏幕底部可见其内容的前100个点。具体来说,表格视图将允许其contentOffset.y(垂直滚动位置)下降到-300(而不是仅下降到0)。表格的内容始终始于y = 0,因此当表格的contentOffset.y值为-300时,仅可见其内容的前100个点。随着contentOffset.y增加,更多的内容变得可见。

然后,覆盖表格视图的point(inside:withEvent:)方法以仅对具有的点返回true y >= 0。这意味着在滚动其内容时,该表将忽略(通过)其内容上方的触摸,因此只有前100个点可见。

这是一张小桌子的最终效果:

小桌子

或一张大桌子:

大桌子

您可以在此答案中找到详细的说明(在Objective-C中)以及指向完整测试项目的链接(也在Objective-C中)。