gpt4 book ai didi

ios - 如何创建SnapChat TableView效果

转载 作者:行者123 更新时间:2023-12-03 00:55:52 24 4
gpt4 key购买 nike

我的应用程序设置为用户可以向左或向右滑动以在 View Controller 之间导航,类似于 SnapChat。我使用启用分页的 UIScrollView 实现了这一点。

我还想实现的 SnapChat 的一个功能是,用户能够在表格 View 中选择一个单元格,开始将其滑过,然后在某个点之后“锁定”单元格,从而允许用户能够将整个 View 拉到屏幕上。如果您从未使用过 SnapChat,这可能有点难以想象,因此我添加了我正在谈论的内容的图像:

enter image description here enter image description here

我应该如何使用 UIScrollView 实现此功能?

目前,我的 ScrollView 中的一个 View Controller 有一个 UITableView,其中包含包含手势识别器的自定义 UITableViewCells,允许它们在检测到滑动时滑动。一旦手势识别器检测到大于一定量的平移,单元格就会停止相对于 View Controller 滑动,并且整个 ScrollView 开始滑动。

这大致实现了与 SnapChat 相同的效果,但它看起来不太好,而且有很多 bug。例如,如果用户尝试轻弹 tableview 单元格(就像人们在 SnapChat 中经常做的那样),那么就会出现问题。

SnapChat 对该功能的实现给人的印象是,在将单元格滑动一定量后,用户“保留了对 ScrollView 的控制”。这是一种非常优雅的用户体验,但我不知道如何复制它。

如果我应该提供任何其他有用的信息(例如到目前为止的代码),请告诉我。

最佳答案

我实现此功能的方式是通过子类化 UITableViewCell 并向单元格添加 UIPanGestureRecognizer 以及单元格本身顶部的“覆盖 View ”,其中包含按钮、背景图像或单元格上需要的任何其他内容。

使用recognizer.translationInView(self),我能够准确地找出用户触摸翻译的程度,然后相应地调整覆盖 View 的原点,因此所有用户元素都会出现滑动。当覆盖 View 转换时,它将显示我直接添加到单元格本身的 View 。

当手势识别器翻译超过某个阈值后,我将手动调整 UIScrollView 的内容偏移量,就像我对单元格所做的那样。

关于ios - 如何创建SnapChat TableView效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37403594/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com