我的表格视图由包含多个子视图的自定义单元格组成
让我们调用其中两个子视图AView和BView。它们并排放置。
在某些情况下,我不想显示BView(我将其隐藏)。但这意味着我应该将Aview扩大到BView的宽度。
我试图在我的数据源的- tableView:cellForRowAtIndexPath:
方法中更改AView的框架。没有结果。然后我试图在我的代表的– tableView:willDisplayCell:forRowAtIndexPath:
中更改它。再次失败。
在这两种情况下,AView都与Storyboard中的大小相同。
那么,我应该在哪里更改AView的框架?
答案 0 :(得分:2)
有很多方法可以做到这一点。我认为非常干净的一个建议是:
IBOutlet
中创建一个链接到BView宽度约束的MyCell
。称之为BViewWidthConstraint。在MyCell
中创建以下函数:
func hideBView() -> void {
self.BViewWidthConstraint.constant = 0
}
在cellForRowAtIndexPath
中,您现在可以:
if needToHideBView {
cell.hideBView()
}
我假设你正在使用Autolayout并且你正确设置它!