我的界面构建器中有以下结构:
MyCustomView
StackView
Label
TextField
Label - is hidden
Button
当按下按钮时,CustomView 的逻辑应该使底部标签出现,因此再次计算 IntrinsicContentSize。不幸的是,只有在第二个按钮单击后才能正确显示视图。
以下是相关代码:
public class MyCustomView: UIView {
...
var subtitle: String! {
didSet {
subtitleLabel.isHidden = subtitle.isEmpty
subtitleLabel.text = subtitle
invalidateIntrinsicContentSize()
}
}
....
override public var intrinsicContentSize: CGSize {
stackView.layoutIfNeeded()
return stackView.bounds.size
}
....
}