我有一个以编程方式创建的自定义tableview单元格,其中包括:带有图像的背景视图左侧和右侧的3个标签右侧的一个UISwitch。我希望能够滑动并删除单元格。但是,当我滑动以显示删除按钮时,删除按钮会将背景视图(以及其他所有内容)推到一边,就像它正在压缩单元格一样。如何获得它以使背景图像不缩小?
我一直在寻找这个问题,有些人说这与自动调整面具有关,但这似乎并没有影响任何事情。我也不想在layoutSubviews方法中手动设置单元格的宽度,因为我看到了一个建议。
有什么想法吗? 谢谢!
答案 0 :(得分:6)
问题,我猜(因为你没有发布任何代码),是你添加了所有这些UI元素作为单元格的子视图,即cell.backgroundColor = [UIColor someColor],[cell addSubview: label1]等等。
这就是事情:当编辑模式发生时,单元格的视图不知道如何适当地调整自身大小。但是,一个单元格的contentView,它是一个UIView,它知道如何调整大小。因此,您需要将标签,开关等添加为contentView的子视图,而不是单元格。当您进入编辑模式时,执行此操作将适当调整所有内容。
答案 1 :(得分:4)
我刚刚解决了类似的问题。 与内容视图无关。在界面构建器或故事板中向单元格添加UIImageView时,它会设置所有弹簧和支柱。你会注意到你的UILabels只有顶部和左侧的支柱。
在UITableView单元格上移除UIImageView的内弹簧和右/底支柱可以防止它们被滑动删除按钮压扁。