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];
我正在尝试在 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
(akastruct CGColor *
) to parameter of typeid
如何创建 CGColorRef
的数组?
只需使用数组文字并转换为 (id)
:
gradient.colors = @[(id)[UIColor redColor].CGColor, (id)[UIColor whiteColor].CGColor, (id)[UIColor blueColor].CGColor];