Swift 为什么CATextlayer使用那么多内存 我有一个3000*3000大小的CATextLayer,里面有一个大文本 短信是说“你好” 我将此CATextlayer添加到我的Superlayer 我已将shouldrasterize设置为false

Swift 为什么CATextlayer使用那么多内存 我有一个3000*3000大小的CATextLayer,里面有一个大文本 短信是说“你好” 我将此CATextlayer添加到我的Superlayer 我已将shouldrasterize设置为false,swift,memory,catextlayer,Swift,Memory,Catextlayer,当移动带有翻译的superlayer时,我观察到巨大的内存使用量,直到应用程序崩溃 为什么这需要那么多的内存?我怎样才能避免呢 我想,内存中会存储一个位图吗?但是为什么呢 我的示例是一个极端的例子,它不是我真正高效的应用程序,所以请不要问你为什么要这样做。这只是试图理解正在发生的事情的一个极端情况。它消耗太多内存的原因是显而易见的,因为它的尺寸相当大。引用- 在iOS 2.x中,UIView对象的最大大小为1024 x 1024点。 在iOS 3.0及更高版本中,视图不再限于此最大值 大小,但仍

当移动带有翻译的superlayer时,我观察到巨大的内存使用量,直到应用程序崩溃

为什么这需要那么多的内存?我怎样才能避免呢

我想,内存中会存储一个位图吗?但是为什么呢


我的示例是一个极端的例子,它不是我真正高效的应用程序,所以请不要问你为什么要这样做。这只是试图理解正在发生的事情的一个极端情况。

它消耗太多内存的原因是显而易见的,因为它的尺寸相当大。引用-

在iOS 2.x中,UIView对象的最大大小为1024 x 1024点。 在iOS 3.0及更高版本中,视图不再限于此最大值 大小,但仍受内存消耗量的限制。它是 为了您的最大利益,请将视图大小保持尽可能小。 不管iOS正在运行哪个版本,你都应该考虑 平铺任何明显大于 屏幕


但是我试着去理解为什么它会消耗那么多的内存。当然我应该缩小尺寸以适应。这是我描述的一个极端的例子。我想了解,原因是什么。它是存储在内存中的位图吗?还是怎样这是真的吗?当我画一个简单的文本时,它最终会生成一个位图。我想如果一个CALayer(它有很多优点)最终成为一个位图,这将是苹果公司的错误设计。你正在做一个过渡动画,记住,动画过程中涉及到一个表示层,所有这些都将导致内存的巨大激增。不,我没有做任何动画。我只是翻译带有Calayer的UIView。过渡只是另一种类型的动画。因此,您仍然拥有普通动画的所有负载。但是,CATextlayer作为位图存储,即使在空背景中有黑色文本的情况下,90%的空间也是空的,这句话是真的吗?