如何更改标签的视图

How to change view for label

我有一个 UILabel,我想更改它的背景视图。有人建议我使用贝塞尔曲线,但我想要一个简单的变体。

我的标签:

它应该是什么样子:

由于这些不是很复杂的形状,我建议创建两个白色 UIView,将它们旋转 45 度,然后将它们作为子视图添加到 UILabel。代码看起来像这样:

    myLabel.clipsToBounds = true
    // create the triangle on the left side of the label
    let leftSquare = UIView(frame: CGRect(x: myLabel.frame.height / -2, y: 0, width: myLabel.frame.height, height: myLabel.frame.height))
    leftSquare.translatesAutoresizingMaskIntoConstraints = true
    leftSquare.isUserInteractionEnabled = false
    leftSquare.backgroundColor = UIColor.white
    leftSquare.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi / 4)) // 45 degree rotation
    // create the triangle on the right side of the cell
    let rightSquare = UIView(frame: CGRect(x: myLabel.bounds.width - (myLabel.frame.height / 2), y: 0, width: myLabel.frame.height, height: myLabel.frame.height))
    rightSquare.translatesAutoresizingMaskIntoConstraints = true
    rightSquare.isUserInteractionEnabled = false
    rightSquare.backgroundColor = UIColor.white
    rightSquare.transform = CGAffineTransform(rotationAngle: CGFloat(Double.pi / 4))
    // add squares to label
    myLabel.addSubview(leftSquare)
    myLabel.addSubview(rightSquare)
    myLabel.sendSubview(toBack: leftSquare)
    myLabel.sendSubview(toBack: rightSquare)