3

我有一个 UITableView 并希望有一种自定义方式来删除我的单元格。当有人在它上面滑动时,单元格会在侧面水平移动并消失。

就像 iOS 7 上的多任务菜单(http://movies.apple.com/media/us/ios/ios7/f34c5445-5a9c-4b3a-9556-8efe89147559/shared_multitasking/shared_multitasking_2x.mp4),但不是垂直滑动,它将是水平的。

有谁知道该怎么做?我应该只检测一次滑动并用 1 秒的动画更改单元格的框架吗?或者你会推荐 UITableViewCell 的好子类吗?

4

1 回答 1

0

我只是将如何执行此操作的一个非常基本的示例放在一起并将其发布在此处: https ://github.com/NSPostWhenIdle/MMSwipeToDeleteCollection 。不要期望能够将它拖放到您的项目中并让它工作,因为坦率地说它可能不会。

创建这样的东西的基本思想从 UICollectionViewCell 的子类开始,它向单元格添加手势。在我的示例中,我使用了滑动手势,因为我很懒 :p 并且设置平移手势(您将在最终产品中需要)涉及更多开销,因为该平移手势和在集合视图的滚动视图中平移手势。

从那里它基本上是一帆风顺的。当手势识别器被调用时,您可以将单元格设置为屏幕顶部的动画。如果您使用平移手势进行设置,则需要将其配置为拖动单元格,并在完成时向上或向下动画,但在我的滑动示例中,单元格移动到顶部(4 英寸模拟器,我使用了静态值)。

那么剩下要做的就是进行一些清理工作。单元格退出屏幕后,您可以安全地将其从数据源中删除,然后从集合视图中删除。(我使用通知中心提醒收藏视图,但您可能应该制定一个协议)我遇到的唯一问题是单元格动画回退,同时作为库存删除动画的一部分淡出。在它离开屏幕后将它的 alpha 设置为 0 可以解决这个问题。

于 2013-08-19T15:33:03.337 回答