是否有一个选项可以为具有不同字体的 NSMutableAttributedString 应用单删除线?

问题描述 投票:0回答:1

我有一个具有两种不同字体大小的 NSAttributedString,用于以便士显示货币。

我需要对所有字符串应用删除线,但不要破坏删除线。

如何以一种格式样式绘制单删除线? 我需要的结果是这样的:

我应用属性时的当前结果:

value.addAttributes([NSAttributedString.Key.strikethroughStyle : 2], range: value.range)

swift nsattributedstring nsmutableattributedstring
1个回答
0
投票

我认为最简单的方法是在标签图层上方绘制一条路径。

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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.