件名の呼び出しを機能させるのに問題があります。以下のテストでは、2つのオレンジ色と1つの緑色の長方形を描画する必要があります。
これが以下のコードの私の理解です...
- 50,50でオレンジ色の長方形を描きます
- 現在のコンテキストを送信して、200,200でdrawgreenRectを呼び出します
- スタック上の現在のコンテキストをプッシュし、ストロークの色を変更して、100,100で緑色の四角形を描画します
- 元のコンテキストを復元する必要がある現在のコンテキストをポップします(オレンジ色のストロークの色)
- 次に、オレンジ色をなでるはずの最後の長方形を描きます
最後の長方形はオレンジ色にストロークするはずですが、緑色にストロークしており、元のコンテキストを変更したことを示しています
考え?
- (void)drawRect:(CGRect)rect{
CGRect aRectangle=CGRectMake(50., 50., 40., 40.);
UIBezierPath *path=[UIBezierPath bezierPathWithRect:aRectangle];
UIColor *strokeColor=[UIColor orangeColor];
[strokeColor setStroke];
[path stroke];
CGContextRef context=UIGraphicsGetCurrentContext();
[self drawGreenRect:context];
CGRect anotherRectangle=CGRectMake(100., 100., 40., 40.);
UIBezierPath *anotherPath=[UIBezierPath bezierPathWithRect:anotherRectangle];
[anotherPath stroke];
}
- (void)drawGreenRect:(CGContextRef)ctxt{
UIGraphicsPushContext(UIGraphicsGetCurrentContext());
CGRect aRectangle=CGRectMake(200., 200., 40., 40.);
UIBezierPath *path=[UIBezierPath bezierPathWithRect:aRectangle];
UIColor *strokeColor=[UIColor greenColor];
[strokeColor setStroke];
[path stroke];
UIGraphicsPopContext();
}