ios - 在计算上,这在将 subview 加载到 View 中时更有意义

标签 ios objective-c

从费用的角度来看,在将 subview 添加到 UIView 的层次结构时,哪个选项提供最佳计算结果:

场景一

viewWillAppear:animatedwillLayoutSubviews 中使用 [[aView subviews] makeObjectPerformSelector:@selector(removeFromSuperView] 删除容器 View 的所有 subview ,重置所有指针或属性,然后(重新)初始化所有 subview 并将它们添加到容器 View 层次结构中。

场景二

viewDidLoad 方法中初始化并添加所有 subview (只调用一次,因此只将它们添加到 View 层次结构一次,然后在 viewWillAppear:animatedwillLayoutSubviews 方法为每个 subview 设置约束或框架。

最佳答案

场景 2 比第一个快得多。创建和删除 View 是昂贵的,你应该尽量限制。

如果您使用自动布局,也可以在 viewDidLoad 中设置约束,不建议设置框架。

所以最好的办法是在 viewDidLoad 中创建和添加所有 subview ,在那里设置自动布局约束,而不设置 View 框架,如果需要,只在其他方法中设置约束。

关于ios - 在计算上,这在将 subview 加载到 View 中时更有意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26119050/

相关文章:

iOS 保存标签中的最高数字。

ios - 远程数据加载后 swift alamofire show viewcontroller

ios - 在 Swift 中实现核心数据验证方法

ios - 如何检查 iPhone 的蓝牙是否已连接到其他设备/配件?

c++ - 静态 Objective-C 类中的内存

iphone - UIView透明渐变

ios - 去掉 UITableView 上面的行

ios - 如何自定义 SDK 的 UIAlertController?

ios - 如何从所有文本字段获取所有值

objective-c - AVAudioPlayer 拒绝播放修改后的 wav 文件