如果我创建一个空白的Mac XCode项目并在主窗口中并排放置500个简单的NSView
个对象,它的加载非常快。如果我在每个子视图上设置wantsLayer=YES
,性能会急剧下降几秒钟。为什么这是概念性的案例?看起来图层会比常规的旧NSView更快而不慢。
答案 0 :(得分:4)
您可以通过分层支持这么多视图为系统提供更多工作。图层加载允许图形加速(用于绘图),但它为布局等内容增加了一些开销,更不用说只创建它们并将它们放在屏幕上。如果使用得当,它并不是一个很大的问题。
通常情况下,如果你有这么多"事情"要立即在屏幕上管理,您需要一个支持图层的托管视图来管理其自己的子图层树。 "但基于视图的表格视图呢?"你问。我说,诡计,诡计!表格视图实际上并未保留他们管理的所有单元格视图;他们有效地重复使用它们,只保留足以代表屏幕上的内容和/或动画效果。
所以我说这不是一个真正的问题,因为它不是一个特别好的方法,可以为布局和绘图开始提供500多个图层支持的视图。 : - )