启用以在将超级视图拖动到特定阈值后滚动 UITableView



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

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

我的设置:

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

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

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

我发现了这个类似的问题,但没有答案。

这是苹果地图中的默认功能。 如何实现此功能的任何建议?

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

最新更新