【问题标题】:In Swift, how to get the y position of a text baseline of a UILabel?在 Swift 中,如何获取 UILabel 的文本基线的 y 位置?
【发布时间】:2017-06-18 07:29:10
【问题描述】:

我正在尝试获取 UILabel 文本的确切基线。

label.frame.maxY 返回 UILabel 的 box 的最大 y。

但我真正想要的是文本位置的最大值。

忽略“按钮”。我刚刚从谷歌搜索了这张图片。我知道如何获得第一个返回的值(maxY),但我想知道如何获得第二个(虚线位于文本下方)。

感谢您的帮助!

【问题讨论】:

  • 您可以使用约束来实现这一点 - 这对您来说可以吗,还是您需要实际值来自己计算帧?
  • 尝试在标签上使用.sizeThatFits(CGSize(width: Int.max, height: Int.max),使标签框收紧。
  • @Losiowaty 我需要自己计算帧数
  • @DejanSkledar 高度没有收紧,无法获得准确的基线
  • @DejanSkledar :如果你的文本中有像 y/j/g/p 这样的字母,它们会延伸到基线以下。

标签: ios swift swift3 uilabel


【解决方案1】:

你可以很简单地做到这一点:

let baselineY = label.frame.origin.y + label.font.ascender;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    • 2021-05-15
    • 1970-01-01
    • 2013-07-27
    • 1970-01-01
    • 2016-07-30
    • 1970-01-01
    相关资源
    最近更新 更多