如何使视图高度取决于其在Swift中的内容?

时间:2017-03-13 18:36:43

标签: ios swift uiview

我有一个视图和一些元素

let background_img_view: UIView = {
    let view = UIView()
    return view
}()
background_img_view.addSubview(background_image)
background_img_view.addSubview(border)
background_img_view.addSubview(about_txt)

about_txt尺寸未知,可以是30px或300px,现在我希望background_img_view的高度取决于about_txt的高度。< / p>

如何以编程方式实现?

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用 sizeThatFits(_:)方法进行about_txt视图。使用此函数返回的大小,并将superview的大小设置为该大小。 https://developer.apple.com/reference/uikit/uiview/1622625-sizethatfits

如果在视图显示在屏幕上之前添加了子视图,则可以在视图控制器的 viewWillAppear 方法中设置高度。您还可以在 viewWillLayoutSubviews 中更新尺寸。 如果您正在使用自动布局,请查看setNeedsLayout vs. setNeedsUpdateConstraints and layoutIfNeeded vs updateConstraintsIfNeeded