我正在使用在另一个 stackoverflow post 中找到的以下代码创建渐变关于在 iOS 中绘制径向渐变
- (void)drawInContext:(CGContextRef)ctx
{
if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"theme"] isEqualToString:@"black"]) {
}
size_t gradLocationsNum = 2;
CGFloat gradLocations[2] = {0.0f, 1.0f};
CGFloat gradColors[8] = {156/255.0f, 97/255.0f, 249/255.0f,1.0f,41/255.0f,131/255.0f,242/255.0f,1.0f};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGGradientRef gradient = CGGradientCreateWithColorComponents(colorSpace, gradColors, gradLocations, gradLocationsNum);
CGColorSpaceRelease(colorSpace);
CGPoint gradCenter= CGPointMake(self.bounds.size.width/2, self.bounds.size.height+100);
float gradRadius = MAX(self.bounds.size.width , self.bounds.size.height) ;
CGContextDrawRadialGradient(ctx, gradient, gradCenter, 0, gradCenter, gradRadius, kCGGradientDrawsAfterEndLocation);
CGGradientRelease(gradient);
}
我不知道如何定义CGFloat gradColors[8] = {156/255.0f, 97/255.0f, 249/255.0f,1.0f,41/255.0f,131/255.0f,242/255.0f,1.0f};
这样我就可以做类似的事情:
CGFloat gradColors[8];
if ...
gradColors[8] = {156/255.0f, 97/255.0f, 249/255.0f,1.0f,41/255.0f,131/255.0f,242/255.0f,1.0f};
else if ...
gradColors[8] = {156/255.0f, 97/255.0f, 249/255.0f,1.0f,41/255.0f,131/255.0f,242/255.0f,1.0f};
另外:有没有办法将 UIColor
转换为这种格式?
最佳答案
您可以尝试使用接受 CGColor 数组的 CGGradientCreateWithColors()
。
例如。
CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef)@[(id)aUIColor1.CGColor, (id)aUIColor2.CGColor], gradientLocations);
关于ios - 将颜色定义为 CGFloat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36456852/