CALayer

```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;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 这个我是在cocochina上面看到的 原文地址http://www.cocoachina.com/ios/201...
    FengxinLi阅读 5,229评论 0 3
  • 图层与视图 iOS 视图在层级关系中相互嵌套,一个视图可以管理它的所有子视图的位置。 CALayer CALaye...
    山水域阅读 5,201评论 0 25
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 12,715评论 6 30
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看...
    F麦子阅读 10,526评论 5 13
  • 故乡位于苏北东海县东南一个小村庄,一个历史久远、美丽富足的鱼米之乡,象一颗璀璨的明珠散落在黄淮海平原上。...
    顾东洲阅读 3,365评论 0 0