【发布时间】:2016-06-22 21:18:23
【问题描述】:
我有一个圆弧,我画的如下:
func drawBackgroundMask(context: CGContextRef,
center: CGPoint,
radius: CGFloat,
lineWidth: CGFloat,
startAngle: CGFloat,
endAngle: CGFloat) {
let adjustedRadius: CGFloat = radius - (lineWidth/2) - 0
CGContextSetLineWidth(context, lineWidth)
CGContextSetLineCap(context, .Round)
CGContextAddArc(context,
center.x,
center.y,
adjustedRadius,
startAngle,
endAngle,
0)
//CGContextClosePath(context)
//CGContextClip(context)
CGContextStrokePath(context)
}
注释掉以上行后,我可以创建以下内容:
但是,如果我尝试通过取消注释上面的两行代码来将绘制的形状用作蒙版,然后将背景绘制成实体,我会得到不同的结果:
func drawBackgroundMask(context: CGContextRef,
center: CGPoint,
radius: CGFloat,
lineWidth: CGFloat,
startAngle: CGFloat,
endAngle: CGFloat) {
let adjustedRadius: CGFloat = radius - (lineWidth/2) - 0
CGContextSetLineWidth(context, lineWidth)
CGContextSetLineCap(context, .Round)
CGContextAddArc(context,
center.x,
center.y,
adjustedRadius,
startAngle,
endAngle,
0)
CGContextClosePath(context)
CGContextClip(context)
CGContextStrokePath(context)
CGContextSetRGBFillColor(context, 100.0/255.0, 100.0/255.0, 100.0/255.0, 1.0);
CGContextFillRect(context, rect);
}
谁能向我解释为什么使用绘制的弧线作为剪贴蒙版会导致它的处理方式与绘制的不同?另外,谁能告诉我正确的方法来创建一个圆弧形的面具?这个问题是我正在处理的一个更大的控件的一部分,我必须用弧形显示的形状剪辑另一个弧。
【问题讨论】:
标签: ios swift core-graphics