放射状グラデーションを使用して円を描いています。正常に動作していますが、その円に黒と白の色を塗りつぶそうとすると、正しく機能しません。アプリを黒と白の色で実行すると、黒の色が緑色になります白色の場合は黄色です。ここに私のコードがあります: `
CGContextRef contextRef = UIGraphicsGetCurrentContext();
CGContextSetRGBStrokeColor(contextRef, 0, 0, 1.0, 1.0);
CGContextSetLineWidth(contextRef, borderWidth);
CGContextSetFillColorWithColor(contextRef, borderColor.CGColor);
//draw border
CGContextFillEllipseInRect(contextRef, CGRectMake(self.bounds.size.width/2 - (radius), self.bounds.size.height/2 - (radius), 2*radius, 2*radius));
//components from gradientColor1 and gradientColor2
CGFloat red1;
CGFloat green1;
CGFloat blue1;
{
const CGFloat *components = CGColorGetComponents(gradientColor1.CGColor);
red1 = components[0];
green1 = components[1];
blue1 = components[2];
}
CGFloat red2;
CGFloat green2;
CGFloat blue2;
{
const CGFloat *components = CGColorGetComponents(gradientColor2.CGColor);
red2 = components[0];
green2 = components[1];
blue2 = components[2];
}
//radial gradient color
CGGradientRef gradient;
CGColorSpaceRef colorSpace;
CGFloat locations[] = {0.0,1.0};
CGFloat components[] = { red2,green2,blue2,1.0,red1,green1,blue1,1.0 };
colorSpace = CGColorSpaceCreateDeviceRGB();
gradient = CGGradientCreateWithColorComponents(colorSpace,components,locations,
sizeof(locations)/sizeof(CGFloat));
CGPoint start = CGPointMake(self.bounds.size.width/2, self.bounds.size.height/2 ), end = CGPointMake(self.bounds.size.width/2 , self.bounds.size.height/2);
CGFloat startRadius = 0.0, endRadius = radius - borderWidth;
CGContextDrawRadialGradient(contextRef,gradient,start,startRadius,end,endRadius,0);
CGGradientRelease(gradient);
CGColorSpaceRelease(colorSpace);
ここで、gradientColor1 は白色で、gradientColor2 は黒色です。助けてください。ありがとうございます。画像を参照してください。