2012-03-22 40 views
3

我試圖啓用拖放UITableViewCell來交換它們。這不是問題,但我想在沒有「setEditing:」方法的情況下執行此操作。我想在用戶拖動單元格之前使用longGestureAction之類的元素交換單元格,然後將其放在另一個位置,但不禁用selectRow方法,並且不顯示側面圖標。啓用無需「setEditing:」方法拖放UITableViewCell

我不希望這樣的事情:

1img http://dl.dropbox.com/u/10739464/stackoverflow/bad.png

我想是這樣的/有可能拖當然滴/:

2img http://dl.dropbox.com/u/10739464/stackoverflow/good.png

哦,我需要啓用「清除」待辦事宜應用程序中的拖放功能。

+1

讓我們用英文談談,以便堆棧溢出的其他用戶可以理解我們的談話:)是的,我想我找到了一個解決方案。我會在幾分鐘內發佈我的答案 – akashivskyy 2012-03-22 19:52:49

回答

6

您可以輕鬆獲得此效果使用-setEditing:。你只需要指定的某些屬性您UITableViewCells

- (UITableViewCell*)tableView:(UITableView)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = ...; 

    cell.shouldIndentWhileEditing = NO; 
    cell.showsReorderControl = NO; 

    return cell; 

} 

只要確保你打電話-setEditing:-viewDidLoad方法:

- (void)viewDidLoad { 
    [tableView setEditing:YES animated:NO]; 
} 

編輯:我搜索一點點在網絡上並發現這個:JTGestureBasedTableViewDemo for iOS。它基於ClearApp,非常令人印象深刻。你可以看看它是如何做,並在你的應用程序:)


編輯#2採用一些解決方案:如果要啓用編輯過程中的選擇,剛剛成立的tableView的這個屬性:

tableView.allowsSelectionDuringEditing = YES; 
+0

它不起作用。當然,我可以重新排序單元格,但我不能選擇它。 – Endrju 2012-03-22 20:12:53

+0

查看我添加的信息 – akashivskyy 2012-03-22 20:14:07

+0

@edit:也許'tableView.allowsSelectionDuringEditing = YES'會對你有用嗎? – akashivskyy 2012-03-22 20:19:47