如何为Capital Letters制作UILabel NSUnderlineStyle.StyleSingle referencedString中心

时间:2016-06-17 19:25:20

标签: ios swift uilabel

我有以下方法适用于大写和小写字母的标签。

  func strikeThroughLabel(label: UILabel) {
      let attributedString = NSAttributedString(string: label.text!, attributes: [NSStrikethroughStyleAttributeName: NSUnderlineStyle.StyleSingle.rawValue])
      label.attributedText = attributedString
  }

问题是,对于包含所有大写字母的标签,删除线不是垂直居中的。

解决这个相当不方便的问题的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

虽然这不是一个很好的解决方案。我必须说这与你所需要的完全相反。

我建议使用NSBaselineOffsetAttributeName而不是调整行本身,这会根据需要稍微调整文本基线。

这会使该行垂直显示在text的{​​{1}}的中心位置。

希望您的要求可以接受。