0
単純な描画を行い、特定のサブパスの線幅/ダッシュを変更したい場合は、どのようにすべてのパスを変更せずにこれを達成できますか?私はCGContextSaveGState(コンテキスト)を使っていくつかのバリエーションを試しました。しかし、それを正しく得ることはできません。これはまったく別のパスでなければなりませんか?私は本当に彼らが影で描かれないようにしたい。サブパスを描画するときのCGの変更/保存コンテキスト
- (void)drawPitch:(CGContextRef)context {
// Push the context onto the stack
UIGraphicsPushContext(context);
//Reasonable defaults
CGRect pitchRect = CGRectMake(10, 10, 220, 344);
CGSize myShadowOffset = CGSizeMake(0,1);
float myColorValues[] = {0, 0, 0, 0.75};
CGColorRef myColor;
CGColorSpaceRef myColorSpace;
//Color Space
myColorSpace = CGColorSpaceCreateDeviceRGB();
myColor = CGColorCreate (myColorSpace, myColorValues);
// Set Stroke
CGContextSetRGBStrokeColor(context, 1, 1, 1, 0.9);
CGContextSetLineWidth(context, 4);
// Pitch Outline at width:4
CGContextAddRect(context, pitchRect);
CGContextSaveGState(context);
// Want this to be set width:2 just for the subpath
CGContextSetLineWidth(context, 2);
CGContextMoveToPoint(context, CGRectGetMinX(pitchRect), CGRectGetMinY(pitchRect) + (pitchRect.size.height * 0.50));
CGContextAddLineToPoint(context, CGRectGetMaxX(pitchRect), CGRectGetMinY(pitchRect) + (pitchRect.size.height * 0.50));
CGContextRestoreGState(context);
// Set Line Shadow
CGContextSetShadowWithColor(context, myShadowOffset, 10, myColor);
// Stroke path
CGContextStrokePath(context);
// Pop the contect back on the stack
UIGraphicsPopContext();
}