【问题标题】:UILabel sometimes renders NSAttributedString with a 1px tall line above textUILabel 有时会在文本上方以 1px 高的线呈现 NSAttributedString
【发布时间】:2018-10-14 01:18:32
【问题描述】:

这对我来说有点奇怪。我在标签中显示了一些复杂的属性文本,它一直运行良好,直到最近在某些文本行上方开始出现一条小灰线,如下所示:

请注意,这与 tableview 单元格分隔符不同,仅出现在标签的矩形上方。

经过一些调试,我还注意到当我没有小蓝色括号“flair”标签时,该行没有出现:

我正在使用以下代码添加有问题的蓝色标签:

let captionFont = UIFont.preferredFont(forTextStyle: UIFontTextStyle.caption1);
let offset = (bodyFont.lineHeight / 2) - (captionFont.lineHeight / 2)

attributedString.addAttributes([NSAttributedStringKey.font : captionFont, NSAttributedStringKey.foregroundColor : Constants.linkColor, NSAttributedStringKey.baselineOffset:offset], range: flairRange!)

我做错了什么?这是 CoreText 的错误吗?

【问题讨论】:

    标签: ios nsattributedstring core-text


    【解决方案1】:

    经过一番反复试验,我确定该问题仅在 offset 为十进制值时出现。当我简单地将我的偏移线替换为

    let offset = ceil((bodyFont.lineHeight / 2) - (captionFont.lineHeight / 2))

    该行不再出现。我怀疑这是一个 CoreText 错误。

    【讨论】:

      猜你喜欢
      • 2014-05-04
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 2013-06-29
      • 2019-12-15
      • 2015-12-28
      • 2016-06-27
      相关资源
      最近更新 更多