如何将CALayer的内容设置为CGImageRef?

Sim*_*ave 9 cocoa-touch core-animation objective-c

我想将a的内容设置为CALayer图像.它CALayer有一个contents属性该属性的文档说"一个层可以将此属性设置为CGImageRef,以显示图像作为其内容." 但该属性id在Xcode中采用了以下问题我得到以下问题:

语义问题:从'CGImageRef'(又名'struct CGImage*')分配给'id'的指针类型不兼容

如果只需要一个属性,我如何分配CGImageRefcontents属性id?我在这里错过了什么?

小智 12

您可以使用(__bridge id)来解决类型转换问题,而不是使用(id).


tia*_*tia 5

明确地转换CGImageRefid应该修复警告.例如,

CGImageRef imageRef;

...

layer.contents = (id) imageRef;
Run Code Online (Sandbox Code Playgroud)

应该工作正常.

  • 答对了.我不完全理解为什么.`CGImageRef`不是`NSObject`,因此不能表示为`id` ......对吗?这个演员实际上发生了什么? (4认同)

归档时间:

查看次数:

5003 次

最近记录:

13 年,10 月 前