Я пытаюсь использовать это решение для построения градиентного круга @Johnny Rockex на macOS. Но у меня возникли некоторые проблемы.
В оригинальном ответе @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 верны, но только небольшая часть изображения имеет цвет.
Возможно, это не связано с описанием заголовка, но я не могу найти подсказки в других частях кодов.