如何在UIView Swift中重写draw(rect)函数?

如何在UIView Swift中重写draw(rect)函数?,swift,uiview,draw,Swift,Uiview,Draw,如果我想创建一个带有自定义形状的自定义UIView,我应该重写绘图函数,对吗 但我不明白它是如何工作的它没有返回值我应该把贝塞尔路径发送到哪里 override func draw(_ rect: CGRect) { // after I create my bezier path what should I do inside to have my custom view drawn? } 提前感谢您提供的anwers填充/划过路径。例如: class MyView1 : UIView {

如果我想创建一个带有自定义形状的自定义UIView,我应该重写绘图函数,对吗

但我不明白它是如何工作的它没有返回值我应该把贝塞尔路径发送到哪里

override func draw(_ rect: CGRect) {
// after I create my bezier path what should I do inside to have my custom view drawn?

}

提前感谢您提供的anwers

填充/划过路径。例如:

class MyView1 : UIView {
    override func draw(_ rect: CGRect) {
        let p = UIBezierPath(ovalIn: CGRect(x:0,y:0,width:100,height:100))
        UIColor.blue.setFill()
        p.fill()
    }
}

请注意,通常您不希望覆盖draw:。通常,最好在包含要绘制的路径的视图中添加CAShapeLayer。请参阅我对这个问题的回答:对于一个自定义UIView,它的内容层是CAShapeLayer,并绘制一条路径作为视图的content.Upvoted。我不知道为什么会被否决。它回答了这个问题。