问题描述
当我第一次切换 1 > 2 时,UITabbar 中有 5 个选项卡,速度很慢,因为在 2 中有非常复杂的视图和 viewDidLoad() 设置。
我怎样才能让它更快或更好?我可以在打开 1 时预加载 2 吗?或者我可以在加载视图时显示加载指示器吗?
解决方法
关于您的问题的上下文太少。我唯一可以推荐你的是在 XCode 中使用“时间分析器”工具研究问题
(适用于 XCode 12.5) 按 XCode -> 打开开发者工具 -> 工具
然后。按“时间分析器”
对于具有此类代码的 ViewController
import UIKit
class DelayViewController: UIViewController {
var i = 0
override func viewDidLoad() {
while i < 100000000 {
print("i is \(i)")
i += 1
}
}
}
我们可以在“Time profiler”中看到打印方法需要多少时间
,您可能在主队列上运行了太多任务。您应该只在主队列上更新 UI。您是否在 DispatchQueue.main.async { }
方法中从数据库中获取某些内容、下载图片等?如果是,请尝试从其他队列(例如 DispatchQueue.global
)上的数据库中获取这些内容。您也可以使用 UIActivityIndicator
直到您的设置完成,然后在主队列上更新它。