为什么CATextlayer使用那么多内存

时间:2016-01-22 09:05:52

标签: swift memory catextlayer

  • 我有一个大小为3000 * 3000的CATextLayer,里面有一个大文字。
  • 文字说“你好”
  • 我将此CATextlayer添加到我的Superlayer。
  • 我将shouldrasterize设置为false。

当移动带有翻译的超级层时,我会观察到一个巨大的内存使用量,直到应用程序崩溃。

为什么这会占用那么多记忆?我怎么能避免这种情况?

我假设,内存中会存储一个位图?但为什么呢?

我的示例是一个极端情况,这不是我的高效App,所以请不要问你为什么要这样做。它只是一个极端的例子,试图理解,发生了什么。

1 个答案:

答案 0 :(得分:2)

它消耗太多内存的原因很明显,因为它的维度非常庞大。引用documentation -

  

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