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

Posted

技术标签:

【中文标题】如何使视图高度取决于它在 Swift 中的内容?【英文标题】:How can I make views height depend on its content in Swift? 【发布时间】:2017-03-13 18:36:42 【问题描述】:

我有一个视图和其中的一些元素

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 的高度。

如何以编程方式实现?

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

你认为我会从苹果的文档中学到任何关于 swift 的知识吗?请举例说明如何使用 sizeThatFits?

以上是关于如何使视图高度取决于它在 Swift 中的内容?的主要内容,如果未能解决你的问题,请参考以下文章