【问题标题】:Enable drag and drop UITableViewCell without "setEditing:" method无需“setEditing:”方法即可启用拖放 UITableViewCell
【发布时间】:2012-03-22 19:37:23
【问题描述】:

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

我不想要这样的东西:

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

我想要这样的东西/当然可以拖放/:

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

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

【问题讨论】:

  • 让我们用英语交谈,以便 Stack Overflow 上的其他用户能够理解我们的对话 :) 是的,我想我找到了解决方案。我会在几分钟内发布我的答案

标签: iphone ios xcode uitableview


【解决方案1】:

使用 -setEditing: 可以轻松实现此效果。您只需分配UITableViewCells 的一些属性:

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

    UITableViewCell *cell = ...;

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

    return cell;

}

只要确保在-viewDidLoad 方法中调用-setEditing:

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

编辑:我在网上搜索了一下,发现了这个:JTGestureBasedTableViewDemo for iOS。它基于 ClearApp,令人印象深刻。您可以看看它是如何完成的,并在您的应用中应用一些解决方案:)


编辑#2:如果你想在编辑时启用选择,只需设置tableView的这个属性:

tableView.allowsSelectionDuringEditing = YES;

【讨论】:

  • 它不起作用。当然我可以重新排序单元格,但我不能选择它。
  • @edit:也许tableView.allowsSelectionDuringEditing = YES 对你有用?
  • 它基于手势,我会尝试在我的应用中实现它:) 感谢您的帮助:)
  • 那么allowsSelectionDuringEditing呢?
  • tableView.allowsSelectionDuringEditing 工作得几乎完美,但我仍然在右侧有图标,我无法在整个宽度上拖动单元格:/
【解决方案2】:

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

(对于上述库,您可以尝试使用第一个示例。)

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

希望对某人有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2012-06-13
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多