无法绘制自定义视图

时间:2019-09-21 12:48:17

标签: ios swift uibezierpath

我正在尝试创建类似于自定义视图的三角形,但未显示。我没有得到什么毛病

我指的是这个Make UILabel at 45 degree with a cross background colour swift

class ViewController: UIViewController {

    @IBOutlet weak var testView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()
let triangleView = TriangleView()
        triangleView.draw(CGRect(x: 0, y: 0, width: 50, height: 50))
        testView.addSubview(triangleView)
    }
}

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(1).setFill()
                path.fill()
    }

}

想要创建自定义视图

1 个答案:

答案 0 :(得分:1)

您不需要显式调用draw()方法。只需为三角形视图设置框架。

override func viewDidLoad() {
    super.viewDidLoad()
    let customView = TriangleView.init(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
    testView.addSubview(customView)
}

希望有帮助!