不幸的是,在UIView中绘制径向渐变无法解决问题。
看...这就是我要绘制的方式(这是在PS中制作的):
但是我目前对此坚持:
那是我的代码:
CGGradientRef radialGradient;
CGColorSpaceRef rgbColorspace;
size_t num_locations = 2;
CGFloat locations[2] = { 0.0, 1.0 };
const CGFloat *colorComponents = CGColorGetComponents(textColor.CGColor);
CGFloat components[8] = { colorComponents[0], colorComponents[1], colorComponents[2], 1.0, // Start color
1.0, 1.0, 1.0, 1.0 }; // End color
rgbColorspace = CGColorSpaceCreateDeviceRGB();
radialGradient = CGGradientCreateWithColorComponents(rgbColorspace, components, locations, num_locations);
CGRect currentBounds = self.bounds;
CGPoint midCenter = CGPointMake(CGRectGetMidX(currentBounds), CGRectGetMidY(currentBounds));
CGContextDrawRadialGradient(myContext, radialGradient, midCenter, 8.0, midCenter, 1.0, kCGGradientDrawsAfterEndLocation);
CGGradientRelease(radialGradient);
CGColorSpaceRelease(rgbColorspace);
我希望有人能给我正确的提示;)
周末愉快,
克里斯
最佳答案
基本上,您需要使用两个以上的位置。使用2个位置,您将在起点和终点之间获得恒定的坡度。您的示例图像显示了直到结束为止的大多数位置的起始颜色,并且显示了较浅的最终颜色。查看样本图像,您将需要至少3个位置并更改最终颜色。
关于ios - 在UIView上绘制径向渐变(圆形),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19604744/