如何在子视图被快速隐藏后以编程方式确定UIStackView的高度

时间:2018-04-04 02:18:10

标签: ios swift uiscrollview uistackview

我在UIScrollView中使用UIStackView,我想确定堆栈视图的高度,以便我可以编程方式调整滚动视图的高度,以适应隐藏子视图的情况。

我正在使用

stackView.frame.height 

确定堆栈视图高度。这在viewDidLoad()中调用,但无论子视图是否隐藏,它始终与故事板中的高度值相同。

如何确定身高?

1 个答案:

答案 0 :(得分:6)

对任何视图进行布局更改后,必须在功能完成后重新计算它的帧。要立即获取更新的框架,请致电:

stackView.layoutIfNeeded()

示例:

print(stackView.frame.height) // old height
subview1.isHidden = true
print(stackView.frame.height) // still old height
stackView.layoutIfNeeded()
print(stackView.frame.height) // new height

有关详细信息,请参阅the documentation