Ios UILabel文本穿过角度

Ios UILabel文本穿过角度,ios,swift,cocoa-touch,uilabel,strikethrough,Ios,Swift,Cocoa Touch,Uilabel,Strikethrough,我想创建一个UILabel,其中的文本是这样的(像角度而不是水平)。有人能提出建议吗 您可以添加如下扩展: extension UILabel { func addSlantLine(slantLineColor: UIColor, slantLineWidth:CGFloat, startPoint: CGPoint, endPoint: CGPoint) { let slantLinePath = UIBezierPath() slantLinePat

我想创建一个UILabel,其中的文本是这样的(像角度而不是水平)。有人能提出建议吗


您可以添加如下扩展:

extension UILabel {
    func addSlantLine(slantLineColor: UIColor, slantLineWidth:CGFloat, startPoint: CGPoint, endPoint: CGPoint) {
        let slantLinePath = UIBezierPath()
        slantLinePath.move(to: startPoint)
        slantLinePath.addLine(to: endPoint)

        let slantLineLayer = CAShapeLayer()
        slantLineLayer.path = slantLinePath.cgPath
        slantLineLayer.lineWidth = slantLineWidth
        slantLineLayer.strokeColor = slantLineColor.cgColor
        layer.addSublayer(slantLineLayer)
    }
}
使用:


您可以像这样添加扩展:

extension UILabel {
    func addSlantLine(slantLineColor: UIColor, slantLineWidth:CGFloat, startPoint: CGPoint, endPoint: CGPoint) {
        let slantLinePath = UIBezierPath()
        slantLinePath.move(to: startPoint)
        slantLinePath.addLine(to: endPoint)

        let slantLineLayer = CAShapeLayer()
        slantLineLayer.path = slantLinePath.cgPath
        slantLineLayer.lineWidth = slantLineWidth
        slantLineLayer.strokeColor = slantLineColor.cgColor
        layer.addSublayer(slantLineLayer)
    }
}
使用:


您只需将标签宽度修剪为内容大小即可

testLabel.text = "Tk 1,750"
testLabel.frame.size.width = myLabel.intrinsicContentSize.width
然后按照@fzh的指示使用

testLabel.addSlantLine(slantLineColor: UIColor.lightGray,
                   slantLineWidth: 2,
                   startPoint: CGPoint(x: 0, y: testLabel.frame.height - 2),
                   endPoint: CGPoint(x: testLabel.frame.width, y: 2))
注意
文本更新后修剪

只需将标签宽度修剪为内容大小即可

testLabel.text = "Tk 1,750"
testLabel.frame.size.width = myLabel.intrinsicContentSize.width
然后按照@fzh的指示使用

testLabel.addSlantLine(slantLineColor: UIColor.lightGray,
                   slantLineWidth: 2,
                   startPoint: CGPoint(x: 0, y: testLabel.frame.height - 2),
                   endPoint: CGPoint(x: testLabel.frame.width, y: 2))
注意
文本更新后修剪

请参阅此帖子您希望文本有一个角度吗?或者你想要一条线以一个角度撞击水平文本?可能的重复请参考此帖子你想要文本以一个角度吗?或者您想要一条线以一定角度撞击水平文本?可能的重复我可以只在文本上设置撞击吗?因为您的代码工作正常,但它已经覆盖了UILabel/对不起,我不知道如何实现它,只删除bose answer中特定的texttestLabel.frame.size.width=myLabel.intrinsicContentSize.width。非常感谢你的回答。我可以只在课文上划一下吗?因为您的代码工作正常,但它已经覆盖了UILabel/对不起,我不知道如何实现它,只删除bose answer中特定的texttestLabel.frame.size.width=myLabel.intrinsicContentSize.width。非常感谢你的回答。