UILabel为45度,交叉背景色为swift

时间:2018-05-19 12:28:40

标签: ios iphone swift uilabel

我想用45度的背景色显示文字。

实施例

like this

提前致谢

1 个答案:

答案 0 :(得分:2)

此元素包含两个子元素:

  1. 三角形UIView;
  2. 旋转UILabel
  3. 首先可以通过使用覆盖draw方法创建自定义视图来实现:

    class TriangleView: UIView {
    
        override func draw(_ rect: CGRect) {
            let path = UIBezierPath()
            path.move(to: .zero)
            path.addLine(to: CGPoint(x: rect.maxX, y: 0))
            path.addLine(to: CGPoint(x: 0, y: rect.maxY))
            path.close()
    
            UIColor.red.withAlphaComponent(0.5).setFill()
            path.fill()
        }
    
    }
    

    第二个是-45度的简单变换旋转:

    label.transform = CGAffineTransform(rotationAngle: -.pi / 4)
    

    结果:

    enter image description here

    接下来应该管理的事情 - 精确设置UILabel边界(标签不应离开屏幕)和线数。 UILabel元素的约束和归因检查器可以帮助您。