2013-08-19 16 views
3

我有一個UITableView並希望有一種自定義的方式來刪除我的單元格。當有人在上面滑動時,細胞會在側面水平移動並消失。UITableViewCell水平自定義swip-刪除效果

與iOS 7(http://movies.apple.com/media/us/ios/ios7/f34c5445-5a9c-4b3a-9556-8efe89147559/shared_multitasking/shared_multitasking_2x.mp4)上的多任務菜單完全相同,但不是垂直滑動,而是水平。

有沒有人知道如何做到這一點?我應該只檢測一次滑動並用1秒的動畫改變我的細胞框架?或者有沒有很好的UITableViewCell的子類,你會推薦?

+1

你會在github上得到一個示例項目「MCSwipeTable」來檢查。 – Exploring

+0

我試過了,它真的是我在找的東西......除了它不允許任何其他用戶在單元上的交互。所以按鈕不起作用了。 :/ –

回答

0

我剛剛扔了一個非常基本的如何做到這一點的例子,並張貼在這裏:https://github.com/NSPostWhenIdle/MMSwipeToDeleteCollection。不要指望能夠將它拖放到你的項目中並使其工作,因爲坦率地說它可能不會。

創建類似此類的基本想法始於UICollectionViewCell的一個子類,它向單元添加了一個手勢。在我的例子中,我使用滑動手勢,因爲我很懶:p,並且在設置平移手勢時需要更多的開銷(最終產品需要),因爲該平移手勢與平移手勢集合視圖的滾動視圖中。

從那裏它基本上是平穩的航行。當手勢識別器被調用時,您將單元格移出屏幕頂部。如果您使用平移手勢進行設置,則需要將其配置爲拖動單元格,並在完成時向上或向下設置動畫,但在我的示例中,單元格移動到剛好位於4英寸模擬器頂部的位置,我使用了靜態值)。

然後剩下要做的就是清理一下。一旦單元退出屏幕,您可以安全地從數據源中刪除它,然後從收集視圖中刪除它。 (我使用通知中心提醒集合視圖,但你應該制定一個協議)我唯一的問題是,單元格在淡出時作爲股票刪除動畫的一部分而退出。在離開屏幕後將其alpha設置爲0可解決此問題。