我试图在Xcode 8,Swift 3上的 UIView 子类中绘制一个蓝色圆圈。在Cocoa Touch文件中,我用作<的类em>在 Storyboard 中查看对象,我编写了以下代码,但是没有显示圆圈:
import UIKit
class testView: UIView {
override func draw(_ layer: CALayer, in ctx: CGContext) {
ctx.addEllipse(in: CGRect(x: 0, y: 0, width: 100, height: 100))
ctx.setFillColor(UIColor.blue.cgColor)
ctx.fillPath()
}
}
此版本UIKit
并不显示圆圈:
override func draw(_ layer: CALayer, in ctx: CGContext) {
UIGraphicsPushContext(ctx)
let p = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 100, height: 100))
UIColor.blue.setFill()
p.fill()
UIGraphicsPopContext()
}
我做错了什么?
答案 0 :(得分:1)
我正在研究你的问题,这是我的结果,首先你需要得到你的CurrentGraphicsContent,如果你不这样做,你就不能画任何东西,所以试试这个代码
override func draw(_ rect: CGRect) {
super.draw(rect)
if let ctx = UIGraphicsGetCurrentContext() {
ctx.setFillColor(UIColor.blue.cgColor)
ctx.addEllipse(in: CGRect(x: 0, y: 0, width: 100, height: 100))
ctx.fillPath()
UIGraphicsEndImageContext()
}
// Drawing code
}
我希望这有助于你