CALayer

2016-09-26  本文已影响15人  空城阿风

```CALayercontents```这类义有个一个属性contens,这个属性的类型被定义为id。在这种情况下你可以给他赋任何值 。但实践中 如果你给contens赋的不是CGimage ,那么你得到的图层将是空白的。

这是因为Mac OS的历史造成的 。在mac os开发中可以被赋值CGImage和NSImage类值。

实赋值类应该CGImageRef 他是一个指向CGimage结构的的指针.UIimage有一个CGimage属性,他返回"CGImageRef",这值赋值给CALayer的 contents。你将会编译错误。因为CGImageRef并不是一个真正的Cocoa对象,而是一个Core Foundation类型。

Core Foundation类和Cocoa对运时很想(toll-free bridging)他们并不是类型兼容的我们可以通过bridged键转换,给图层图赋值这可以这样转换

layer.contents= (__bridge id)image.CGImage;

上一篇 下一篇

猜你喜欢

热点阅读