【问题标题】:ios swift app orientation change very slow; what happens when iOS device changes orientation?ios swift 应用程序方向变化很慢;当 iOS 设备改变方向时会发生什么?
【发布时间】:2018-03-12 03:19:51
【问题描述】:

我有一个包含 UIScrollView 的 UIViewController,我在其中构建了所有内容以供显示。我这样做是因为内容是动态的并且取决于存储在数据库中的数据。

当我在 iPhone 或模拟器中更改方向时,执行更改需要很长时间(取决于显示的数据,最长可能需要 40 秒)。

如果我只是启动同一个控制器,只需要几秒钟(它有一个覆盖和进度指示器,因此用户知道它在思考)。

为什么定向需要这么长时间?当方向改变发生时实际会发生什么?

【问题讨论】:

    标签: ios swift uiviewcontroller uiscrollview orientation


    【解决方案1】:

    如何从数据库中同步或异步加载数据?如果您希望您的应用具有更好的响应能力,您应该异步加载它。

    另外,如果数据库是从主线程同步访问的,那么加载数据的代码在哪里:在“viewDidLoad”、“viewDidLayoutSubviews”等的某个地方?我怀疑当设备的方向发生变化时加载代码会运行多次,因此您可以尝试在那里放置一个断点,看看到底发生了什么......

    【讨论】:

    • UI 是异步生成/更新的,并在构建时显示 alpha 叠加层和进度指示器。数据库访问非常快,转换为视图需要更长的时间。我从 viewDidLayoutSubviews() 构建视图,它不会不必要地运行。我在构建时有一条日志消息,并且在方向更改期间没有调用该代码,因此 iOS 中有一些东西被我的布局所困扰。
    猜你喜欢
    • 2018-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多