2012-06-19 73 views
10

我想弄清楚如何做到以下幾點:的UITableView點擊並按住+拖拽

我有一個UITableView,它進入編輯模式,當用戶點擊並保持行的一個

一旦它進入編輯模式,我需要單元格保持選中狀態,並在用戶手指下彈出效果。

的用戶應該能夠拖動彈出電池,並將其重新定位到另一行不提起手指。

我已經到位:

我有一個長按手勢識別和我設置表到編輯在長按手勢識別選擇。

但是,爲了拖動單元格,我當前需要擡起手指並重新點擊拖動單元格,這不是我想要的。

任何幫助,將不勝感激。

+0

可能重複[重新排序UITableView無重新排序控制]( http://stackoverflow.com/questions/5624730/reordering-uitableview-without-reorder-control) – Senseful

回答

0

在當前時刻有一種變通方法(不是很容易):https://stackoverflow.com/a/7501076/326017

,我發現的代碼片段在這裏:https://github.com/FlorianMielke/FMMoveTableView

「FMMoveTable是UITableView的子類,它提供了通過簡單的移動行按住一個適當的行不表切換到它的編輯模式」 - 從描述

+0

這裏可能是一個更好的代碼片段:請參閱https://github.com/bvogelzang/BVReorderTableView。沒有毛病。 – SwiftArchitect

0

文章Reordering a UITableViewCell from any touch point討論了這個確切的情況。

基本上你做到以下幾點:

  1. 找到UITableViewCellReorderControl(私有類)。
  2. 展開它,以便跨越整個單元格。
  3. 隱藏它。
  4. 用戶現在可以從任何地方拖動單元格。

另一種解決方案,Cookbook: Moving Table View Cells with a Long Press Gesture,通過執行以下操作達到相同的效果:

  1. 添加長按手勢識別的表視圖。
  2. 當單元格被拖動時創建單元格的快照。
  3. 隨着拖動單元,左右移動快照,並調用-[UITableView moveRowAtIndexPath:toIndexPath:]
  4. 當手勢結束時,隱藏單元快照。