我正在尝试加速我在加载大型项目时加载非常缓慢的gui(gui是组和子组的表示,并且由许多视图组成)。在此过程中,我查看了某些代码段执行的时间长度,并且我发现对addsubview的调用大多数情况下需要10到20毫秒。我正在看的子视图是一个披露按钮。我想知道这种方法本身是否只是缓慢还是其他因素在这里起作用?根据子视图的复杂性添加子视图所需的时间是不是因素?另外,是否有其他方法可用于添加可能更快的子视图?
答案 0 :(得分:2)
重新排列视图层次结构并不是您经常要做的事情。您可以隐藏和取消隐藏子视图,而不是添加和删除子视图。
答案 1 :(得分:2)
您可以尝试-setSubviews:它会获取一组子视图。这可能比调用-addSubview更快:你自己多次。
否则,-addSubview:和-addSubview:locate:relativeTo:是插入子视图的唯一其他方法。
我很好奇,为什么单个子视图的速度为10-20毫秒? 您要添加多少个子视图?
有可能使用NSCell的替代设计可能更快,但是如果不知道您要完成什么的更多细节,则很难知道。