【问题标题】:UILabel height depending on font sizeUILabel 高度取决于字体大小
【发布时间】:2018-03-22 02:38:39
【问题描述】:

我在UITableViewCell 中使用UILabel 来显示标题。通常文本不会太长,因此字体可以很大。请注意文本如何像正常一样填充UILabel 的高度。

但是,当标题较大时,我希望减少 UILabel 的高度以适应较小的字体大小,并且不会在其位置留下空白。目前,我的配置产生了这种效果。

我在情节提要中使用了约束,并且故意没有设置固定的高度约束。以下是添加的相关约束:

我可能在我的配置中犯了一个新手错误,因为我不记得以前发生过这种效果,但这让我很头疼(而且 UI 看起来很糟糕)。

【问题讨论】:

  • 根据其他子视图的其他约束,您可以调整垂直内容拥抱优先级。在标签上增加它。
  • @jervine10 标题标签的垂直内容拥抱优先级高于任何其他子视图。

标签: ios uitableview uilabel constraints uitableviewautomaticdimension


【解决方案1】:

删除Top SpaceBottom Space 约束(取决于您希望标签锚定的位置)。

这将导致标签自动使用适合文本大小。

【讨论】:

  • 但是我的表格视图如何知道显示行的高度?
  • 您可以在代码或界面生成器中设置rowHeight。如果您需要根据单元格的内容为每行设置不同的行高,您可以使用UITableViewDelegateheightForRowAt: 方法@
  • 我想使用我配置的首选 UITableViewAutomaticDimension。
【解决方案2】:

试试这个看看,它应该根据你的需要工作:

设置顶部和底部约束属性Greater Than or Equal To并添加水平中心(Alight Center Y to superview)并显示在此图像中。

【讨论】:

    【解决方案3】:

    UILabel 设置为自动调整字体大小以适应时,它不会自动调整自身的高度

    你有几个选择:

    1. 将基线设置为居中对齐,并接受您将有顶部和底部填充

    2. 使用代码计算“缩放后的字体大小”并更新标签的字体大小

    【讨论】:

      猜你喜欢
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-07
      • 2014-02-11
      相关资源
      最近更新 更多