NSView的方法addSubview固有的慢吗? (可可OSX)

时间:2010-03-12 19:50:42

标签: cocoa macos nsview addsubview

我正在尝试加速我在加载大型项目时加载非常缓慢的gui(gui是组和子组的表示,并且由许多视图组成)。在此过程中,我查看了某些代码段执行的时间长度,并且我发现对addsubview的调用大多数情况下需要10到20毫秒。我正在看的子视图是一个披露按钮。我想知道这种方法本身是否只是缓慢还是其他因素在这里起作用?根据子视图的复杂性添加子视图所需的时间是不是因素?另外,是否有其他方法可用于添加可能更快的子视图?

2 个答案:

答案 0 :(得分:2)

重新排列视图层次结构并不是您经常要做的事情。您可以隐藏和取消隐藏子视图,而不是添加和删除子视图。

答案 1 :(得分:2)

您可以尝试-setSubviews:它会获取一组子视图。这可能比调用-addSubview更快:你自己多次。

否则,-addSubview:和-addSubview:locate:relativeTo:是插入子视图的唯一其他方法。

我很好奇,为什么单个子视图的速度为10-20毫秒? 您要添加多少个子视图?

有可能使用NSCell的替代设计可能更快,但是如果不知道您要完成什么的更多细节,则很难知道。