如何复制CALayer?

How do you copy a CALayer?(如何复制CALayer?)
本文介绍了如何复制CALayer?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

背景:创建CALayer需要一些开销,因此我想在一个类的init方法中创建多个CALayer(所有CALayer共享相同的属性)(稍后将在该类中使用)。

推荐答案

CALayer没有内置-(id)copy方法。我不知道为什么。然而,自己动手并不难。创建一个CALayer类别并编写您自己的复制方法。您所要做的就是实例化并手动从原始文件中获取公共ivars/属性,并将其设置为新的副本。别忘了给[super copy]

打电话 顺便说一句,CALayer是一个对象。您可以将其添加到NS数组。

这篇关于如何复制CALayer?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
How to stop UIBarButtonItem text from truncating?(如何阻止UIBarButtonItem文本被截断?)
java.lang.IllegalStateException: SimpleTypeImpl should not be created for error type(异常:不应为错误类型创建SimpleTypeImpl)
Android IllegalArgumentException: The tag for fragment_XXX is invalid. Received: layout-sw600dp/fragment_XXX_0(Android IlLegalArgumentException:Fragment_XXX的标签无效。收到:Layout-sw600dp/Fragment_XXX_0)
iOS convert audio sample rate from 16 kHz to 8 kHz(IOS将音频采样率从16 kHz转换为8 kHz)
Enforcing an audio sampling rate in iOS(在iOS中强制音频采样率)