gpt4 book ai didi

macos - "CoreAnimation: surface is too large"

转载 作者:行者123 更新时间:2023-12-03 16:21:37 26 4
gpt4 key购买 nike

我正在创建一个自定义(层托管)文档 View ,它包含在 ScrollView 中。根层有两个大小相同的子层——一个用于 View 的内容,另一个用于需要悬停在主要内容上的任何内容。我将框架设置为 2500x2500,并向内容层添加了许多单元格,这很好。将单元格层之一的半透明克隆添加到覆盖层时,整个 View 会短暂清除,并且我收到一条日志消息“核心动画:表面 2502x2502 太大”。这种情况发生在添加新层和事件循环的下一个周期之间,所以我猜测核心动画何时渲染新层。

我知道图层的内容大小与 opengl 纹理大小相关,但认为它的框架并不重要。我没有在这些图层上绘制任何内容,没有设置任何样式属性,也没有删除屏幕外的子图层。我真正使用它们的目的只是处理文档 View 的几何形状。这是 CA 层的适当使用吗?如果没有,是否有更好的方法来处理基于动画的大型核心文档 View ?

编辑:

我又遇到了这个问题,这是由向大父级添加子图层时的隐式动画引起的。因此,除了下面建议的内容之外,还需要检查您是否遇到此问题。

最佳答案

我会检查以确保您没有在 2500x2500 图层上设置任何可能需要离屏渲染的属性。 (这会导致图层尝试在屏幕外创建一个全尺寸缓冲区并将其内容渲染到该缓冲区中,而不是直接将内容渲染到屏幕上。)

例如,设置不透明度、masksToBounds、mask、shouldRasterize 等可能会导致离屏渲染。您可以使用核心动画工具查看是否发生离屏渲染。 (有一个复选框可以突出显示屏幕外渲染的区域。)

关于macos - "CoreAnimation: surface is too large",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8194287/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com