启用拖放UITableViewCell而不使用“setEditing:”方法

时间:2012-03-22 19:37:24

标签: iphone ios xcode uitableview

我正在尝试启用拖放UITableViewCell来交换它们。这不是问题,但我想在没有“setEditing:”方法的情况下这样做。我希望在使用longGestureAction之类的用户拖动单元格之前交换单元格,然后将其放在另一个地方,但不禁用selectRow方法,也不显示侧面图标。

我不想要这样的东西:

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

我想要这样/有可能拖放当然/:

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

哦,我需要像“清除”待办事项应用程序一样启用拖放功能。

2 个答案:

答案 0 :(得分: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的,非常令人印象深刻。你可以看看它是如何完成的,并在你的app中应用一些解决方案:)


编辑#2:如果要在编辑期间启用选择,只需设置tableView的此属性:

tableView.allowsSelectionDuringEditing = YES;

答案 1 :(得分:1)

你可以试试这个:https://github.com/ice3-software/i3-dragndrop 这个堆栈通过流链接:drag and drop from uitableviewcell to uiimage view in ios

(对于上面提到的库,你可以尝试使用第一个例子。)

我希望将此更多发布为评论..但是,我没有足够的声誉。

希望它有所帮助。