Ios 如何使用UIBezierPath绘制圆形矩形?

Ios 如何使用UIBezierPath绘制圆形矩形?,ios,swift,uibezierpath,Ios,Swift,Uibezierpath,我试图用圆角矩形遮罩视图UIBezierPath。我希望遮罩看起来与我刚刚设置的图层完全相同。cornerRadius: let frame = CGRect(x: 0, y: 0, width: 80, height: 80) let cornerRadius = 30 使用转弯半径: let view = UIView(frame: frame) view.layer.cornerRadius = cornerRadius let view = UIView(frame: frame)

我试图用圆角矩形遮罩视图
UIBezierPath
。我希望遮罩看起来与我刚刚设置的图层完全相同。cornerRadius:

let frame = CGRect(x: 0, y: 0, width: 80, height: 80)
let cornerRadius = 30
使用
转弯半径

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

let view = UIView(frame: frame)
view.layer.cornerRadius = cornerRadius
let view = UIView(frame: frame)
let maskingShape = CAShapeLayer()
maskingShape.path = UIBezierPath(roundedRect: frame, cornerRadius: cornerRadius).cgPath
view.layer.mask = maskingShape
得到的圆角矩形是完全不同的。标准拐角半径按预期工作,而贝塞尔路径仅在某个半径处捕捉到一个完整的圆

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

那么如何绘制带有贝塞尔路径的标准圆形矩形?

我发现了,但这一定是个玩笑,对吧?没有更简单的方法吗(


检查这个答案也许能给你带来一些启示我希望自己不必画贝塞尔路径。不过我会试试看,谢谢。UIBezierPath(roundedRect:cornerRadius:)是否仍然很奇怪
根本无法达到您的预期效果?@ReinierMelian好吧,所以我尝试了您的解决方案。两个圆形矩形具有不同的形状(一个具有层角半径,另一个具有贝塞尔路径)。我想我将使用这两种方法中的任何一种。