在编辑模式iPhone中避免单元格自动调整

时间:2011-11-20 10:56:19

标签: iphone uitableview editing autoresize custom-cell

我的自定义单元格有问题 我的单元格结构如下图所示:
enter image description here

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

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

我尝试tableView:shouldIndentWhileEditingRowAtIndexPath:方法没有成功,因为我的tableView很简单。我也试图覆盖willTransitionToState:方法,但我不知道如何做我想要的。

有人可以帮助我吗? 非常感谢你!

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

如果你真的不想让单元格调整大小,你可以这样实现-layoutSubviews

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

当您进入编辑模式时,-layoutSubviews将不会遵循显示您的观看次数的代码路径。假设您已经将UITableViewCell子类化了。