UILabel中富文本垂直不居中的解决方案

如下图所示,收益率label由于数字部分是红色,所以使用到了富文本,但是很明显,label中的文本相对label垂直方向不再居中了,位置明显靠下了。


UILabel中富文本垂直不居中的解决方案_第1张图片
image.png

以下是swift代码

let rate_return_tip = NSMutableAttributedString(string: "  收益率\(String(format: "%.3f", rate_of_return))%  ")
rate_return_tip.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.red, range: NSMakeRange(5, rate_return_tip.length-5))
rate_return_tip.addAttribute(NSAttributedStringKey.font, value: UIFont.boldSystemFont(ofSize: 18), range: NSMakeRange(0, rate_return_tip.length))

以下是swift解决方案代码

let rate_return_tip = NSMutableAttributedString(string: "  收益率\(String(format: "%.3f", rate_of_return))%  ")
rate_return_tip.addAttribute(NSAttributedStringKey.foregroundColor, value: UIColor.red, range: NSMakeRange(5, rate_return_tip.length-5))
rate_return_tip.addAttribute(NSAttributedStringKey.font, value: UIFont.boldSystemFont(ofSize: 18), range: NSMakeRange(0, rate_return_tip.length))
# 调整文本基线,在我这里,因为是垂直方向明显靠下了,所以向上调整了3个单位
rate_return_tip.addAttribute(NSAttributedStringKey.baselineOffset, value:3, range: NSMakeRange(0, rate_return_tip.length))

如下是调整后的效果


UILabel中富文本垂直不居中的解决方案_第2张图片
image.png

你可能感兴趣的:(UILabel中富文本垂直不居中的解决方案)