我添加了UIView
。我有一个课程UIView
。
我想在其中绘制一个圆角矩形UIBezierPath
,但这是否意味着我必须在我的班级中覆盖UIView
的drawRect?
我画了这个:
但我现在如何绘制简单的圆角矩形,在我的班级UIView
中添加了这个函数:
func roundRect()
{
let rectWidth:CGFloat = 100
let rectHeight:CGFloat = 80
let xf:CGFloat = (self.frame.width - rectWidth) / 2
let yf:CGFloat = (self.frame.height - rectHeight) / 2
let ctx: CGContext = UIGraphicsGetCurrentContext()!
ctx.saveGState()
let rect = CGRect(x: xf, y: yf, width: rectWidth, height: rectHeight)
let clipPath: CGPath = UIBezierPath(roundedRect: rect, cornerRadius: rectCornerRadius).cgPath
ctx.addPath(clipPath)
ctx.closePath()
ctx.fillPath()
ctx.restoreGState()
}
答案 0 :(得分:0)
在视图中绘制简单形状的最简单,最有效的方法是向视图添加CAShapeLayer
。您可以将其添加为视图图层的子图层,也可以覆盖视图的layerClass()
方法以返回CAShapeLayer
作为视图的类别背衬层。然后,您可以在视图的layoutSubviews()
方法中将您想要绘制的路径安装到图层的路径属性中