2

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

4

2 回答 2

2

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

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

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

有可能使用 NSCell 的替代设计可能更快,但是如果不了解有关您要完成的工作的更多详细信息,则很难知道。

于 2010-03-13T14:28:32.020 回答
2

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

于 2010-03-13T06:30:32.040 回答