1行で境界線のある長方形を描くにはどうすればよいですか?
次のような個別の方法があります。
CGContextStrokeRect(context, someRectangle);
と
CGContextFillRect(context, someRectangle);
しかし、両方を1つにできるものはありますか?
1行で境界線のある長方形を描くにはどうすればよいですか?
次のような個別の方法があります。
CGContextStrokeRect(context, someRectangle);
と
CGContextFillRect(context, someRectangle);
しかし、両方を1つにできるものはありますか?
- (void)drawRect:(CGRect)rect {
CGContextRef context = UIGraphicsGetCurrentContext();
CGPathRef path = CGPathCreateWithRect(rect, NULL);
[[UIColor redColor] setFill];
[[UIColor greenColor] setStroke];
CGContextAddPath(context, path);
CGContextDrawPath(context, kCGPathFillStroke);
CGPathRelease(path);
}
ただし、別々の呼び出しでストロークとフィルよりも冗長であるとは言えません...
行スペースを節約するだけの場合は、独自のメソッドを定義して 2 つの呼び出しを行い、それをユーティリティ クラスに配置できます。
void strokeAndFill(CGContextRef c, CGRect rect)
{
CGContextFillRect(c, rect);
CGContextStrokeRect(c, rect);
}
CGContextDrawPath は、事前に塗りと線の色を設定しておけば、一度に実行されます。
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetStrokeColor(context, a);
CGContextSetFillColor(context, b);
CGContextDrawPath(context, rect)