我有一个具有两种不同字体大小的 NSAttributedString,用于以便士显示货币。
我需要对所有字符串应用删除线,但不要破坏删除线。
如何以一种格式样式绘制单删除线? 我需要的结果是这样的:
我应用属性时的当前结果:
value.addAttributes([NSAttributedString.Key.strikethroughStyle : 2], range: value.range)
我认为最简单的方法是在标签图层上方绘制一条路径。
extension UIView {
func addCenterStrikeThrough(color: UIColor, width: CGFloat = 0.5) {
let path = UIBezierPath()
path.move(to: CGPoint(x: 0, y: frame.size.height / 2))
path.addLine(to: CGPoint(x: frame.size.width, y: frame.size.height / 2))
let layer = CAShapeLayer()
layer.strokeColor = color.cgColor
layer.lineWidth = width
layer.path = path.cgPath
self.layer.addSublayer(layer)
}
}