【问题标题】:how to override draw(rect ) function in UIView Swift?如何覆盖 UIView Swift 中的 draw(rect) 函数?
【发布时间】:2018-10-16 17:36:39
【问题描述】:

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

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

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

}

提前感谢您的回答

【问题讨论】:

  • 请注意,通常您不想覆盖draw(_:)。通常最好将 CAShapeLayer 添加到包含您要绘制的路径的视图中。请参阅我对这个问题的回答:stackoverflow.com/questions/52802176/… 用于自定义 UIView,它具有 CAShapeLayer 作为其内容层并绘制路径作为视图的内容。

标签: swift uiview draw


【解决方案1】:

填充/描边路径。示例:

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()
    }
}

【讨论】:

  • 赞成。不知道为什么这被否决了。它回答了这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-31
  • 2013-01-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多