macOS 使用 CGContextRef 并始终为黑色

macOS Use CGContextRef and always black

我尝试使用 this 解决方案在 macOS.But 上通过@Johnny Rockex 构建渐变圆我遇到了一些问题。

在@Johnny Rockex 的原始回答中

//3.1 setup

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 是正确的,但只有一小部分图像有颜色。 可能不是标题不尊重造成的,但我在其他部分代码中找不到任何线索。

与 UIBezierPath 不同,appendBezierPathWithArcWithCenter 以度为单位。