ios - 如何使大写字母的 UILabel NSUnderlineStyle.StyleSingle attributedString 居中

标签 ios swift uilabel

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

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

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

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

最佳答案

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

与其调整行本身,我建议使用 NSBaselineOffsetAttributeName,这会根据需要向上/向下调整文本基线。

这应该使该行相对于 UILabeltext 垂直显示在中心。

希望能满足您的要求。

关于ios - 如何使大写字母的 UILabel NSUnderlineStyle.StyleSingle attributedString 居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37889005/

相关文章:

ios - 用地面纹理节点填充屏幕

ios - 我应该避免使用 new 来初始化我的对象吗?

json - 如何在 swift 3.0 中通过 url 使用异步方式获取多个 JSON 数据

swift - 如何获取autoid生成的子节点中存储的数据?

iphone - Objective C/iPhone - 如何将 UISlider 绑定(bind)到代码

ios:自定义字体的字距调整

ios - 如何在 Swift 中使用 Firebase 处理离线注销?

ios - 快速访问容器按钮

ios - 如何自动缩放 mapView 以显示覆盖

ios - 带有变体的属性 UILabel 在应用程序发送到后台后重置文本