我有两个多行标签的自定义$query="SELECT *
FROM parent_student_relation AS a
JOIN students AS b
ON a.student_id = b.id
JOIN events AS c
ON b.class_id = c.class_id
WHERE a.parent_id = " . $parent_id;
。有时我需要隐藏此视图,因此我将UIView
和高度约束设置为0。
我是这样做的,但我不确定我是否可以在自定义hidden = YES
UIViews'
中更改约束。
layoutSubviews
我知道布局不是单向街道流程,- (void)layoutSubviews {
[super layoutSubviews];
if (!self.hidden) {
self.heightConstraint.constant = 15 + self.titleLabel.frame.size.height + 4 + self.bodyLabel.frame.size.height + 15;
} else {
self.heightConstraint.constant = 0;
}
}
可能导致layoutSubviews
,反之亦然。
在updateConstraints
?
答案 0 :(得分:1)
layoutSubviews
方法完成其工作后调用 updateConstraints
。如果您在此之后更改约束,则必须再次致电[super layoutSubviews]
。修改约束的正确位置在updateConstraints
方法中,但在您的情况下,您只需在layoutSubviews
方法之外进行更改,然后在完成后调用setNeedsLayout
。
答案 1 :(得分:-1)
您需要setNeedsLayout
方法。例如:
self.view.setNeedsLayout()