Рассматриваемый градиент Рисунок 8-5 из Руководства по программированию в Quartz 2D, "Радиальный градиент, который изменяется между точкой и окружностью".
Я пытаюсь создать объект CGGradient (а не объект CGShading, который может быть проблемой) следующим образом:
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
CGFloat colors[] =
{
0, 0, 0, 0.9,
0, 0, 0, 0
};
CGGradientRef gradient = CGGradientCreateWithColorComponents(rgb, colors, NULL, sizeof(colors)/(sizeof(colors[0])*sizeof(CGFloat)));
CGContextClipToRect(context, rect);
CGContextDrawRadialGradient(context, gradient, startCenter, startRadius, endCenter, endRadius, gradientDrawingOptions);
CGGradientRelease(gradient);
CGColorSpaceRelease(rgb);
Конечно, это не совсем правильно - центральные точки и радиусы верны, но фактический градиент не выглядит одинаково. Я просто хотел, чтобы Apple предоставила исходный код для каждого примера! >: (* 1008 *