如何使视图高度取决于它在 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 中的内容?的主要内容,如果未能解决你的问题,请参考以下文章

Swift SnapKit 动态高度问题

如何根据swift 4或5中的图像大小使图像视图高度和宽度(纵横比)动态? [关闭]

滚动视图内的约束布局,总是参考线高度变化

swift,如何使表格视图单元格具有动态高度[重复]

如何在swift ios中调整集合视图单元格的高度?

给出一个≥高度约束的视图给了我“需要约束:Y 位置或高度”(Swift)