我想在2 UIBezierPath之间绘制差异(见截图),以便只绘制圆角,就像我在屏幕截图中看到的那样(图C)
这是我的代码:
let context = UIGraphicsGetCurrentContext()
CGContextSaveGState(context)
let rectanglePath = UIBezierPath(rect: rect)
CGContextAddPath(context, rectanglePath.CGPath)
CGContextEOClip(context)
let roundedRectanglePath = UIBezierPath(roundedRect: productRect, byRoundingCorners: roundedCorners, cornerRadii: CGSize(width: 6, height: 6))
CGContextAddPath(context, roundedRectanglePath.CGPath)
CGContextFillPath(context)
CGContextRestoreGState(context)
不幸的是它不起作用。我只绘制圆角黑色矩形。
你有什么想法吗?
非常感谢。
答案 0 :(得分:6)
您可以使用一条路径:
let path = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius)
path.appendPath(UIBezierPath(rect: bounds))
path.usesEvenOddFillRule = true
UIColor.blackColor().setFill()
path.fill()
或者您可以使用CoreGraphics:
let path = UIBezierPath(roundedRect: bounds, cornerRadius: cornerRadius)
path.appendPath(UIBezierPath(rect: bounds))
let context = UIGraphicsGetCurrentContext()
CGContextAddPath(context, path.CGPath)
CGContextSetFillColorWithColor(context, UIColor.blackColor().CGColor)
CGContextEOFillPath(context)
产量: