我尝试使用this解决方案通过macOS上的@Johnny Rockex构建渐变圆。但是遇到了一些问题。
在@Johnny Rockex原始答案中
// 3.1设置
UIBezierPath * bezierPath;
CGPoint center = CGPointMake(dimension/2, dimension/2);
UIGraphicsBeginImageContextWithOptions(CGSizeMake(dimension, dimension), true, 0.0);
UIRectFill(CGRectMake(0, 0, dimension, dimension));
此方法由UIKit而非AppKit提供。所以我使用AppKit的一些方法
NSImage *contentView =[[NSImage alloc]initWithSize:NSMakeSize(dimension, dimension)];
[contentView lockFocus];
[NSGraphicsContext currentContext].imageInterpolation = NSImageInterpolationNone;
CGContextRef gc = [[NSGraphicsContext currentContext]CGContext];
NSRectFill(CGRectMake(0, 0, dimension, dimension));
//fill Colors in bazierPath
for (int n = 0; n<numberOfColors;n++) {
...
}
[contentView unlockFocus];
[radialGradient setImage:contentView];
我的颜色数组和bazierPath是正确的,但是图像的只有一小部分具有颜色。 也许不是标题名称引起的,但我在代码的其他部分找不到任何线索。