要防止UIView
的drawRect
清除以前drawRect
调用绘制的路径,可以使用以下方法:
drawRect
方法中使用CGContextSaveGState
和CGContextRestoreGState
方法保存和恢复绘图上下文。override func draw(_ rect: CGRect) {
guard let context = UIGraphicsGetCurrentContext() else { return }
CGContextSaveGState(context)
// 绘制路径
CGContextRestoreGState(context)
}
CAShapeLayer
来绘制路径,并将其添加到UIView
的layer
中。let shapeLayer = CAShapeLayer()
shapeLayer.path = // 路径
shapeLayer.strokeColor = // 路径颜色
shapeLayer.fillColor = // 路径填充颜色
layer.addSublayer(shapeLayer)
UIBezierPath
来绘制路径,并将其添加到CAShapeLayer
中。let path = UIBezierPath()
// 绘制路径
let shapeLayer = CAShapeLayer()
shapeLayer.path = path.cgPath
shapeLayer.strokeColor = // 路径颜色
shapeLayer.fillColor = // 路径填充颜色
layer.addSublayer(shapeLayer)
这些方法可以帮助您防止UIView
的drawRect
方法清除以前drawRect
调用绘制的路径。
领取专属 10元无门槛券
手把手带您无忧上云