5

我创建了一个UITableView编辑模式,我强制它在包含此表视图的视图控制器的 viewDidLoad 函数上运行到编辑模式。一切都很好,表格的每一行左侧都有一个删除图标,re-arrange右侧有一个图标。我实施了

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{
       return UITableViewCellEditingStyleDelete;
}

- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath 
{
     return YES;
}

问题在于每一行我不想在左边显示一个红色的删除图标,只在右边显示一个重新排列图标。当用户想要删除时,他/她可以滑动一行来删除。

我想这样做的原因是我不鼓励用户删除行产品。我知道我可以放置一个编辑按钮,当用户单击此按钮时,我会进入编辑模式,但我不想这样做,我想在用户进入我的视图控制器时在开始时显示一个重新排列功能.

我可以这样做吗。

让我放一些屏幕截图

这就是我得到的

这就是我想要展示的。 当用户滑动时,我想显示一个删除按钮覆盖右侧的排列图标

第一张图是我得到的。

第二张图片是我真正想要展示的。当用户滑动时,我想显示一个删除按钮覆盖右侧的排列图标

4

1 回答 1

10

当tableview处于编辑模式时,我认为您不能使用滑动删除,而是可以添加UISwipeGesture和实现自己的自定义按钮。

如果您正在使用手势,那么您需要实现以下委托方法UITableView

将编辑样式设置为无:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
     return UITableViewCellEditingStyleNone; 
}

这告诉当表格视图处于编辑模式时,行不应该缩进

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath {
    return NO;
}

您可以参考链接以了解如何将滑动手势添加到UITableView.

于 2013-05-30T09:53:46.333 回答