在UIView

时间:2017-03-14 12:07:39

标签: ios iphone swift uiview uibezierpath

我添加了UIView。我有一个课程UIView

我想在其中绘制一个圆角矩形UIBezierPath,但这是否意味着我必须在我的班级中覆盖UIView的drawRect?

我画了这个:

enter image description here

但我现在如何绘制简单的圆角矩形,在我的班级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()
}

1 个答案:

答案 0 :(得分:0)

在视图中绘制简单形状的最简单,最有效的方法是向视图添加CAShapeLayer。您可以将其添加为视图图层的子图层,也可以覆盖视图的layerClass()方法以返回CAShapeLayer作为视图的类别背衬层。然后,您可以在视图的layoutSubviews()方法中将您想要绘制的路径安装到图层的路径属性中