我试图让我的表格标题与其内容一样高。在故事板中似乎不可能这样做,所以我尝试在加载视图时以编程方式设置高度。然而,表头高于其子视图,而帧大小则相同。
我在viewDidLoad函数中执行了此操作。
override func viewDidLoad() {
super.viewDidLoad()
ongoingOrderTableView.backgroundColor = UIColor.blueColor()
tableHeader.backgroundColor = UIColor.redColor()
tableHeader.frame.size.height = 440
print(tableHeader.frame.size)
//(560.0, 440.0)
print(qrLabel.frame.size)
//(54.0, 21.0)
print(qrImage.frame.size)
//(440.0, 440.0)
}
印刷结果显示设置正确。
有人可以解释为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:0)
使用自动布局时,iOS将保持600 * 600的屏幕大小,直到调用func viewDidLayoutSubviews()。因此,您应该在viewDidLayoutSubviews()而不是viewDidLoad()中对布局进行动态调整。
我也将print(tableHeader.frame.size)放在viewDidLayoutSubviews()中,结果是(374.0,501.0)。当我在这个函数中调整标题高度时,结果都是正确的。
答案 1 :(得分:0)
在viewDidLayoutSubviews()
中设置表格标题视图的高度。
要调试该问题,请在viewDidLayoutSubviews()
中添加一个断点并检查标题高度。
根据我的经验,如果您不从情节提要中添加tableHeaderView,就会发生这种情况。
答案 2 :(得分:0)