我使用的大多数 iOS 应用程序都非常敏感,当我点击一个元素时,它会立即转到下一个视图。在我的应用程序中,我的一些视图控制器需要 0.5-1.0 秒才能加载。
我的代码都在viewDidLoad
方法中,我很确定这是问题所在,但我无法移出任何东西,因为我需要实例化的每一个元素。
我认为的一个解决方案是将我在 viewDidLoad 中所做的所有工作移到一个线程中,然后在我准备好调用时调用主线程addSubview
,即使 UIKit 不是线程安全的,这也能工作吗?还是我还缺少其他东西?
我使用的大多数 iOS 应用程序都非常敏感,当我点击一个元素时,它会立即转到下一个视图。在我的应用程序中,我的一些视图控制器需要 0.5-1.0 秒才能加载。
我的代码都在viewDidLoad
方法中,我很确定这是问题所在,但我无法移出任何东西,因为我需要实例化的每一个元素。
我认为的一个解决方案是将我在 viewDidLoad 中所做的所有工作移到一个线程中,然后在我准备好调用时调用主线程addSubview
,即使 UIKit 不是线程安全的,这也能工作吗?还是我还缺少其他东西?
尝试将 viewDidLoad 中的一些代码移动到 viewdidAppear。一旦呈现视图,就会调用 viewDidAppear。如果你必须做一些艰苦的工作,那就在那里做,也许在你做的时候在某个地方展示一个微调器。
你在 viewDidLoad 中到底在做什么?顺便说一句,仅在需要时才加载视图,如果您想更快地在视图之间切换,我可以建议您创建一个初始化阶段,在该阶段您在要显示的所有视图控制器上调用 -view,也许对微调器有所帮助或进度条。但请注意,这仅适用于密集加载任务,而不适用于内存消耗任务。
你的请求听起来很奇怪,所以你最好试着更好地解释为什么你的 viewDidLoad 这么慢,也许有什么问题。
在 Xcode 中定义您的 UI 元素作为界面设计的一部分。这样,Xcode 可以将您的 storeyboard 或 xib 文件编译成快速加载的二进制形式。