当前位置:  开发笔记 > IOS > 正文

你如何复制CALayer?

如何解决《你如何复制CALayer?》经验,为你挑选了2个好方法。

如何使NSArray充满CALayer的多个实例(所有实例都具有相同的框架,内容等)?

背景:CALayer需要一些开销来创建,所以我想在类的init方法中创建一些CALayers(都共享相同的属性)(稍后将在该类中使用).



1> MaxGabriel..:

我没有特别尝试过CALayer,但我知道你可以利用以下方式执行深层复制NSCoding:

CALayer *layer = [NSKeyedUnarchiver unarchiveObjectWithData:[NSKeyedArchiver archivedDataWithRootObject:layer]];

不过,我不确定如何复制它们对性能有什么帮助.



2> amattn..:

CALayer没有内置-(id)copy方法.我不知道为什么.然而,为你自己搞砸并不难.创建CALayer类别并编写自己的复制方法.您所要做的就是实例化并手动从原件获取公共ivars/properties并设置为新副本.别忘了打电话[super copy]

BTW,CALayer是一个对象.您可以将其添加到NSArray.

推荐阅读
360691894_8a5c48
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有