将superView拖动到特定阈值后,启用滚动UITableView的功能

时间:2018-06-21 05:01:37

标签: ios swift uitableview uiscrollview

就像苹果地图一样,主要信息表视图是一个滑动视图,位于MKMapView的顶部。它包含一个UITableView作为子视图,并具有三种状态:完全打开,一半打开和关闭。

处于半开状态时,如果用户开始向上拖动工作表,则整个工作表将一直拖动到完全打开状态,并且如果用户进一步向上拖动工作表,则UITableView内容将开始滚动,请注意,用户仍然没有抬起手指因此,没有触摸结束事件,它是与工作表的持续交互。

我的设置:

包含UITableView的工作表具有UIPanGestureRecognizer设置,可以上下拖动工作表。

最初,当工作表半开时,我尝试通过设置isUserInteractionEnabled = false来禁用UITableView上的用户交互。因此,现在我可以平移工作表了,当达到完全打开状态时,我不再平移工作表并为UITableView设置isUserInteractionEnabled = true。但是我的问题是,当用户抬起手指并再次与之交互时,UITableView会响应下一次触摸事件。用户没有抬起手指时如何滚动?

我什至尝试更改UITableView的scrollEnabled属性而不是isUserInteractionEnabled属性,但结果相同。

我找到了这个similar question,,但是没有答案。

这是Apple Maps中的默认功能。 关于如何实现此功能的任何建议?

1 个答案:

答案 0 :(得分:0)

尝试在Github中探索ISHPullUp这个开源库。它具有与Apple Map应用程序相同的功能。