たとえば、赤の円を塗りつぶしで描画しようとして、以下のコードをUIViewに記述して実行しても、うまく動作しない。
-(void)drawRect:(CGRect)rect { CGContextRef c = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(c,1.0); CGContextSetStrokeColorWithColor(c, [UIColor redColor].CGColor); // 線色指定 CGContextAddArc(c,100,100,10,0,2*M_PI,1); CGContextFillPath(c); // 塗りつぶし CGContextStrokePath(c); // 描画指定 }これで実際に描画されるのは黒塗りつぶし円である。
理由は先に書いたとおり、Quartz2Dでは線の色と塗りつぶしの色を別に指定する必要があるためである。
線色指定の下の行に
CGContextSetFillColorWithColor(c, [UIColor redColor].CGColor);を追加すると、目的通りの赤塗りつぶし円になる。
これでだいぶ悩まされた。
なので、覚え書き。
0 件のコメント:
コメントを投稿