CGColorRef 对象数组

Array of CGColorRef objects

我正在尝试在 SpriteKit 中创建渐变纹理。

为此,我必须使用 CAGradientLayer 并渲染图像。我的问题是设置颜色。

来自 Apple 的文档:

An array of CGColorRef objects defining the color of each gradient stop. Animatable.

所以在代码中,我尝试了这个:

gradient.colors = [NSArray arrayWithObjects:[UIColor redColor].CGColor, [UIColor whiteColor].CGColor, [UIColor blueColor].CGColor, nil];

这不起作用,因为 CGColorRef 不是对象类型,不能发送到类型 id。我的错误是:

Incompatible pointer types sending CGColorRef (aka struct CGColor *) to parameter of type id

如何创建 CGColorRef 的数组?

只需使用数组文字并转换为 (id):

gradient.colors = @[(id)[UIColor redColor].CGColor, (id)[UIColor whiteColor].CGColor, (id)[UIColor blueColor].CGColor];