Я пытаюсь использовать два UIColors, созданные в цветовом пространстве p3 в CAGradientLayer, однако при получении .CGColor от UIColors цвета выглядят приглушенными (они явно обрезаются до стандартной гаммы).
Как правильно получить CGColor от UIColor и сохранить дополнительный диапазон P3?
Код ниже:
gradientColor1 = [UIColor colorWithDisplayP3Red:255.0/255.0 green:146.0/255.0 blue:226.0/255.0 alpha:1.0];
gradientColor2 = [UIColor colorWithDisplayP3Red:248.0/255.0 green:254.0/255.0 blue:190.0/255.0 alpha:1.0];
// these colors look lovely when used as backgrounds for UIViews etc.
gradient.frame = bgColorView.bounds;
gradient.colors = @[(id)gradientColor1.CGColor , (id)gradientColor2.CGColor];
gradient.startPoint = CGPointMake(0.5, 0.41);
gradient.endPoint = CGPointMake(0.5, 0.84);
// the gradient layer now shows muted colors :(
[bgColorView.layer insertSublayer:gradient atIndex:0];
РЕДАКТИРОВАТЬ:
Если я установил CGColorкак цвет фона CALayer, цвет отображается точно, поэтому проблема, по-видимому, возникает именно с CAGradientLayer.Я попытался установить только один цвет для свойства цветов CAGradientLayer, и он неправильно отображается в цветовом пространстве sRGB.
Почему CAGradientLayer демонстрирует такое поведение?