从费用的角度来看,在将 subview 添加到 UIView
的层次结构时,哪个选项提供最佳计算结果:
场景一
在 viewWillAppear:animated
或 willLayoutSubviews
中使用 [[aView subviews] makeObjectPerformSelector:@selector(removeFromSuperView]
删除容器 View 的所有 subview ,重置所有指针或属性,然后(重新)初始化所有 subview 并将它们添加到容器 View 层次结构中。
场景二
在 viewDidLoad
方法中初始化并添加所有 subview (只调用一次,因此只将它们添加到 View 层次结构一次,然后在 viewWillAppear:animated
或 willLayoutSubviews
方法为每个 subview 设置约束或框架。
最佳答案
场景 2 比第一个快得多。创建和删除 View 是昂贵的,你应该尽量限制。
如果您使用自动布局,也可以在 viewDidLoad 中设置约束,不建议设置框架。
所以最好的办法是在 viewDidLoad 中创建和添加所有 subview ,在那里设置自动布局约束,而不设置 View 框架,如果需要,只在其他方法中设置约束。
关于ios - 在计算上,这在将 subview 加载到 View 中时更有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119050/