我已经设置了我的应用程序,这样用户就可以在视图控制器之间左右滑动,类似于SnapChat。我使用启用分页的UIScrollView实现了这一点。
我还想实现SnapChat的一个功能,即用户可以在一个表视图中选择一个单元格,开始滑动它,然后在某个点之后让单元格“锁定”,这样用户就可以将整个视图拉过屏幕。如果您从未使用过SnapChat,这可能有点难以想象,所以我已经包含了我所讲的内容的图像:


如何使用UIScrollView?实现此特性
目前,我的ScrollView中的一个视图控制器有一个UITableView,它的自定义UITableViewCells包含手势识别器,允许它们在检测到滑动时滑动。一旦手势识别器检测到大于一定数量的转换,单元格就停止相对于视图控制器滑动,整个滚动视图开始滑动。
这大致达到了与SnapChat相同的效果,但它似乎没有那么好,而且非常错误。例如,如果用户试图单击tableview单元格(就像人们在SnapChat中经常做的那样),s**t就会击中风扇。
SnapChat功能的实现给人的印象是,在滑动单元格一定数量后,用户“保留”滚动视图的控制权。这是一个非常优雅的用户体验,我不知道如何复制它。
如果有任何其他有用的信息,我应该提供(如我的代码到目前为止),让我知道。
发布于 2016-07-19 07:00:31
实现此功能的方法是对UIPanGestureRecognizer进行子类化,并向单元格中添加一个UITableViewCell,以及在单元格本身上添加一个“覆盖视图”,其中包含按钮、背景图像或单元格上所需的任何其他内容。
使用recognizer.translationInView(self),我能够准确地知道用户的触摸转换了多少,然后相应地调整叠加视图的起源,这样所有的用户元素都会看起来像滑行一样。当重叠视图被转换时,它将显示我直接添加到单元格本身的视图。
在手势识别器翻译超过某个阈值后,我会手动调整UIScrollView的内容偏移量,就像我对单元格所做的那样。
https://stackoverflow.com/questions/37403594
复制相似问题