我正试图用圆角矩形 UIBezierPath 掩盖视图 . 我希望面具看起来 exactly 就像我刚刚设置 layer.cornerRadius 一样:

let frame = CGRect(x: 0, y: 0, width: 80, height: 80)
let cornerRadius = 30

Using cornerRadius

let view = UIView(frame: frame)
view.layer.cornerRadius = cornerRadius

Using UIBezierPath mask

let view = UIView(frame: frame)
let maskingShape = CAShapeLayer()
maskingShape.path = UIBezierPath(roundedRect: frame, cornerRadius: cornerRadius).cgPath
view.layer.mask = maskingShape

由此产生的圆形反应完全不同 . 标准的cornerRadius按预期工作,而bezier路径只捕捉到某个半径的整圆 .

enter image description here

显然,这是iOS 7的预期行为 .

How then do I draw a standard rounded rectangle with a bezier path?

我找到了this category但是这一定是个笑话吗?有没有更简单的方法? :(

Related question .