编辑UITableViewCell时如何删除删除按钮?

时间:2014-02-17 05:52:13

标签: ios uikit

我想自定义我的单元格行为 - 我想要更改单元格视图并显示不同的按钮。我有一半的工作 - 当我滑动时,我会看到移动。

但是我在单元格的右侧有这个删除按钮,我想摆脱它并使用自定义按钮而不是它。我应该使用什么来删除它以及在哪里绑定我的按钮来做同样的事情?

我尝试使用两种方法setEditing:和willTransitionToState,但这没有帮助。

如果我在其中任何一个中跳过调用父方法,我没有得到删除按钮,但我的视图在编辑后永远不会返回到其原始位置,其他单元格停止对滑动作出反应。我需要做些什么来解决这个问题?

-(void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:YES];

    if (editing) {

        [UIView animateWithDuration:0.3 animations:^{
            self.parentView.transform = CGAffineTransformTranslate(CGAffineTransformIdentity, 100, 0);
        }];
    } else {
        [UIView animateWithDuration:0.3 animations:^{
            self.parentView.transform = CGAffineTransformIdentity;
        }];
    }
}

-(void)willTransitionToState:(UITableViewCellStateMask)state
{
    [super willTransitionToState:state];

    if (state == UITableViewCellStateShowingDeleteConfirmationMask) {

        [UIView animateWithDuration:0.3 animations:^{
            self.parentView.transform = CGAffineTransformTranslate(CGAffineTransformIdentity, 100, 0);
        }];
    }

    if (state == UITableViewCellStateDefaultMask) {

        [UIView animateWithDuration:0.3 animations:^{
            self.parentView.transform = CGAffineTransformIdentity;
        }];
    }
}

2 个答案:

答案 0 :(得分:1)

由于您的单元格是UITableViewCell的子类,并且您不想使用股票删除,因此您可能希望禁用它。最基本的方法是不为任何单元格返回编辑样式。

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

}

有些评论提到了你接下来可以做的事情。

  1. 添加位于单元格主视图下方的其他视图。
  2. 在删除按钮所在的同一位置右侧的视图上添加一个按钮。
  3. 使用滑动手势识别器进行基本滑动或平移手势识别器 用于拖动(正常行为)。
  4. 根据翻译更新顶视图框架。

答案 1 :(得分:0)

您无法更改默认UITableViewCell中显示的删除按钮。

而是创建一个customClass of UITableViewCell

或,
破解其子视图,找到任何类UIButton和标题文本"delete"的子视图,然后更改它。