过度使用 NSView -> 替代方案?
Overuse of NSView -> Alternatives?
我的应用程序遇到了一些性能问题:
加载时间超过 2 秒 -> 所以我马上去看了 Apple 文档
在底部名为 "Avoid the Overuse of Views" 的部分中,我感到非常困惑:
我确实添加了很多 NSViews
(我猜我过度使用了它们)。
”
相反,您应该考虑编写自己的自定义 类,它可以由更高级别的 NSView
子类管理。然后可以优化 NSView
子类的绘图代码以处理您的自定义对象。
“
我的问题是:
我如何编写自己的自定义 类 可以由更高级别的 NSView
子类管理 -> 任何示例?
我唯一想到的是 CALayer
。
添加 CALayer
sub类 是否比添加 NSView
更好?
它会增加我糟糕的表现吗?
或者有什么新东西要学?
编辑:
目前我有 NSView
s,我在其中添加 15 NSView
作为它们的子视图,我可以添加 15CALayer
s :-/
您对您的应用进行了概要分析吗?在拆分视图层次结构之前,使用带有时间分析器的工具来找出时间实际花在了哪里。
CALayers 比 UIViews 更高效,如果不需要,建议避免使用 drawRect,但在诉诸重写之前,您需要知道您的 App 实际将时间花在哪里。
我的应用程序遇到了一些性能问题:
加载时间超过 2 秒 -> 所以我马上去看了 Apple 文档
在底部名为 "Avoid the Overuse of Views" 的部分中,我感到非常困惑:
我确实添加了很多 NSViews
(我猜我过度使用了它们)。
”
相反,您应该考虑编写自己的自定义 类,它可以由更高级别的 NSView
子类管理。然后可以优化 NSView
子类的绘图代码以处理您的自定义对象。
“
我的问题是:
我如何编写自己的自定义 类 可以由更高级别的 NSView
子类管理 -> 任何示例?
我唯一想到的是 CALayer
。
添加 CALayer
sub类 是否比添加 NSView
更好?
它会增加我糟糕的表现吗?
或者有什么新东西要学?
编辑:
目前我有 NSView
s,我在其中添加 15 NSView
作为它们的子视图,我可以添加 15CALayer
s :-/
您对您的应用进行了概要分析吗?在拆分视图层次结构之前,使用带有时间分析器的工具来找出时间实际花在了哪里。
CALayers 比 UIViews 更高效,如果不需要,建议避免使用 drawRect,但在诉诸重写之前,您需要知道您的 App 实际将时间花在哪里。