【问题标题】:Set UIView height to fit UILabel subview using autolayouts使用自动布局设置 UIView 高度以适合 UILabel 子视图
【发布时间】:2016-11-13 06:39:28
【问题描述】:

我想做什么

我有一个自定义 UIView,其中有一个 UILabel 作为子视图。我希望 UIView 包装 UILabel 高度并根据文本长度设置它的高度。将文本添加到 label.text 时,UILabel 正在正确调整其高度。到目前为止一切顺利。

问题

UIView 没有通过 UILabel 内容调整高度。文本应该在下面的白色 UIView 内。这应该可以通过约束来解决,对吗?不过我做错了。这可以完全使用 Storyboard 完成,还是我必须在代码中手动设置 UIView 高度?

结果:

【问题讨论】:

  • 是的,您可以在情节提要中完成。我一直在这样做。您应该检查是否已将 UILabel 的行数设置为零。通过这种方式,您可以允许无限数量的行,从而使视图可以增长以适应内容。
  • 是的,UILabel 设置为:label.numberOfLines = 0。如何设置 UILabel 和 UIView 之间的约束?我猜问题应该在那里?
  • 不,您的标签和“可用预订标题”视图之间的约束看起来没问题。你如何设置“可用预订标题”视图和它的超级视图之间的约束?
  • Available Bookings Header 放在 tableView.tableHeaderView 中。我用它作为表头。好的,还有其他建议吗? :(
  • 如何将“可用预订标题”放入 tableView 标题中?您如何设置“可用预订标题”的帧大小?你有什么视图控制器(UIViewContoroller、UITableViewController)?您可以将(仅用于测试)“可用预订标题”视图直接放在您的视图控制器视图中并设置顶部、前导和尾随约束吗?这样你的内容应该会增长。

标签: swift uiview uilabel constraints subview


【解决方案1】:

尝试在 Interface Builder 中将 UILabel 父视图的 Content Hugging 属性设置为 1000:

【讨论】:

  • 对不起m8,没区别。
【解决方案2】:

我相信您对UIView 的label 约束是正确的。我刚刚测试过。

我的猜测是UIView 的约束已设置为对其父视图的高度约束或顶部和底部约束。这将导致持有标签的UIView 无法增加其大小。尝试删除适当的约束。

如果不是,您能否将UIView 约束到其父级的部分显示出来。

【讨论】:

  • Thx Zac 但 UIView 对其父视图没有限制。 UIView 本来是 tableView.tableHeaderView 但我也尝试将它添加到空白 TestViewController 并将其作为子视图添加到主视图。仍然没有调整大小..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 2015-04-10
  • 1970-01-01
  • 1970-01-01
  • 2013-04-15
  • 2013-11-21
相关资源
最近更新 更多