ich einen Bogen haben, die ich wie folgt gezeichnet haben:iOS: Core Graphics - Clipping einen Bogen mit CGContextClip und Linecap = .Round
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)
}
Mit den obigen Zeilen auf Kommentar, ich folgendes erstellen:
wenn ich jedoch von uncommenting-out die beiden Codezeilen oben und dann Malerei der Hintergrund eine solide die gezeichneten Form als Maske zu verwenden versuchen, erhalte ich ein anderes Ergebnis:
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);
}
Kann jemand mir erklären, warum mit dem Hubzündungs als Schnittmaske verursacht es anders behandelt werden, als es gezogen wird? Kann mir jemand den richtigen Weg zeigen, eine Maske in Form eines Bogens mit abgerundeten Enden zu erstellen? Dieses Problem ist Teil eines größeren Steuerelements, an dem ich arbeite, wo ich einen anderen Bogen mit der Form des Bogens schneiden muss.