1

我的自定义单元格有问题。
我的单元格的结构如下图:
在此处输入图像描述

灰色视图 = cell.contentView
橙色视图 = 作为子视图添加到 contentView 的按钮
黄色视图 = 作为子视图添加到 contentView 的标签
蓝色视图 = 作为子视图添加到 contentView 的图像视图
绿色视图 = 附件视图

问题是,当我将编辑切换到 tableView 时,我的单元格缩进隐藏附件视图并向右移动其他所有内容。我想避免这种情况。
当我切换编辑模式时,我的单元格不能移动它的内容,编辑控件(左边的红色按钮)必须代替 contentView 内的按钮,最后一个应该隐藏自己。

我尝试tableView:shouldIndentWhileEditingRowAtIndexPath:了没有成功的方法,因为我的 tableView 很简单。我也尝试覆盖willTransitionToState:方法,但我不知道该怎么做。

有人能帮我吗?
太感谢了!

4

2 回答 2

3

您如何将子视图添加到单元格中?如果您将它们直接添加到单元格而不是将它们添加到内容视图中,它们将不会被移动。当单元格转换到编辑模式时,内容视图会调整大小。

如果要隐藏某些子视图,则应setEditing:animated:在单元格子类中覆盖并酌情隐藏/显示。

您可能还需要添加子视图,使其位于视图层次结构中的 contentView 之下,或者在完成后使用该bringSubviewToFront:方法将内容视图置于顶部。

于 2011-11-20T11:44:51.433 回答
2

如果您真的不希望单元格调整大小,则可以这样实现-layoutSubviews

-(void)layoutSubviews
{
    if ([self isEditing] == NO) {
        // Lay out subviews normally.
    }
}

当您进入编辑模式时,-layoutSubviews不会遵循布置视图的代码路径。这是假设您已将 UITableViewCell 子类化。

于 2011-11-20T14:14:11.860 回答