没有在UITableViewCell中调整大小
问题描述:
我有一个tableviewcell,我为其制作了一个自定义类,如下所示。我试图在运行时对事物进行更改,所以我试图更新链接的一个单元格的子元素的框架,但它不会更改大小。没有在UITableViewCell中调整大小
class Event_TableViewCell: UITableViewCell {
@IBOutlet weak var legTableHolder: UIView!
override func awakeFromNib() {
super.awakeFromNib()
legTableHolder.frame = CGRect(x: 25, y: 25, width: 25, height: 25)
legTableHolder.backgroundColor = UIColor.blueColor()
}
}
的UIView
的背景颜色也变为蓝色,但它的大小没有。
答
如果您使用自动布局,修改该框架将不起作用。
相反,您应该修改约束。
在xib中,转到第一个选项卡,在Interface Builder Document下,取消选中使用Auto Layout框。
+0
这会删除所有组件的自动布局还是仅删除此特定的uiview? – user3916570
+0
这很奇怪,通常我可以改变我的代码中的框架,它的工作原理。只有在这个特定的情况下,我试图在awakeFromNib中为uitableviewcell更改它的子内容。 – user3916570
你读过这个教程吗? https://www.raywenderlich.com/87975/dynamic-table-view-cell-height-ios-8-swift这有点过时了,但那里的建议应该仍然有帮助。 –
通常,更改表格视图单元格子视图的框架不足以在表格视图内更改其高度。推荐的方法是更改自动布局约束。这也可以通过使用从其内容中派生出固有大小的子视图(例如'UILabel'等)来间接完成。 –