【发布时间】:2016-06-14 13:49:44
【问题描述】:
我计划创建一个视图,其中可以包含数百个内部和彼此相邻的 CALayer 对象。因此,这必须尽可能高效。这些层不是很复杂。它们是不透明的,可以是文本或形状图层。这个数量的层必须得到布局。我会为此使用CAConstraints。
来自苹果文档:
重要提示:在 OS X v10.8 及更高版本中,建议您尽量减少对层层次结构的使用,而只使用层支持的视图。在该版本的 OS X 中引入的图层重绘策略允许您自定义支持图层的视图的行为,并且仍然可以获得以前使用独立图层可能获得的性能。
我知道CALayer 对象比视图更轻量级。我不确定为什么我们应该使用支持层的视图而不是直接使用层。是为了便于使用 Auto Layout,还是有更多与性能/内存相关的原因?我希望尽可能获得最佳性能,因为此代码将在 OS X 和 iOS 上运行。
我应该走哪条路?自动布局和层支持 NSViews 或自定义 CALayer 层次结构?
【问题讨论】:
-
CAConstraints 在 iOS 上不可用。听起来他们在说支持层的视图更灵活,但可以为您提供相同的性能。
-
我应该寻找 CAConstraints 的可用性。谢谢!
标签: ios macos cocoa cocoa-touch core-animation