0

塗りつぶしで円を作りたいです。これは私のコードです:

    context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0);
    CGContextSetRGBStrokeColor(context, 0, 34, 102, 1);
    CGContextSetRGBFillColor(context, 135, 206, 250, 0.5);
    rectangle = CGRectMake(1, 1, 500, 500);
    CGContextAddArc(context, pointWhereUserClickedX, pointWhereUserClickedY, 50, 0, 2*3.14159265359, YES);
    CGContextDrawPath(context, kCGPathFillStroke);

実行すると、青色で塗りつぶしたにもかかわらず、塗りつぶしの色が白になります。2 つの「塔」の長方形の後ろに背景の長方形を追加したい場合、同じ問題があります。

context = UIGraphicsGetCurrentContext();

//Background styling
CGContextSetRGBFillColor(context, 202, 255, 112, 1);

//Background setup
background = CGRectMake(1, 1, 1024, 786);               
CGContextAddRect(context, background);
CGContextDrawPath(context, kCGPathFill);

//Styling
CGContextSetLineWidth(context, 2.0);
CGContextSetRGBStrokeColor(context, 0, 0, 225, 1);
CGContextSetRGBFillColor(context, 0, 0, 225, 1);

//first tower setup
firstTower = CGRectMake(20, 20, 25, 100);
CGContextAddRect(context, firstTower);

//second tower setup
secondTower = CGRectMake(20, 800, 25, 100);
CGContextAddRect(context, secondTower);

//Draw towers
CGContextDrawPath(context, kCGPathFillStroke);

背景色を追加しても、まだ変化が見られません。ただ白いだけなので、丸と同じ問題なのかな。2 番目の塔もまったく表示されません。

なにが問題ですか?または、何が欠けていますか?

4

1 に答える 1

3

Quartz コマンドでは、色パラメーターが 0 から 1 (float) の範囲にある必要があります。この行は次のとおりです(他の行も同様です):

CGContextSetRGBFillColor(context, 135, 206, 250, 0.5);

実際には次のようにする必要があります。

CGContextSetRGBFillColor(context, 135.0/255.0, 206.0/255.0, 250.0/255.0, 0.5);

于 2013-02-27T23:48:55.527 に答える