gpt4 book ai didi

ios - 在后台线程中创建 View Controller

转载 作者:行者123 更新时间:2023-12-01 16:37:01 25 4
gpt4 key购买 nike

我有一个UIScrollView。减速完成后,我需要创建一个UIViewController的新实例。问题是,尽管创建了此过程(大约需要1秒钟),但我无法滚动,并且UI感觉不太流畅。我正在考虑在后台线程中创建此 View Controller 。这是个好主意吗?创建它之后,我还需要做一些工作,并且必须在主线程上完成这项工作。如果我在创建 Controller 的方法上使用dispatch_async,然后在 View Controller 上使用dispath_sync(主队列)来完成我必须在 View Controller 上执行的工作,那么dispatch_sync会一直等到我的异步工作完成后再执行吗?

tl; dr我在scrollViewDidEndDecelerating中做了很多工作,但是这导致我的scrollview的滚动性能很差。如何提高性能?

样本:

- scrollViewDidEndDecelerating {
dispatch_async(background) {
[self createVC];
[self performSelectorOnMainThread:(setupView)];
}
}

最佳答案

需要更多代码来了解为什么启动UIVIewController时scrollView停止,但是顺便说一句:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, NULL), ^{
// This is happening in the background thread.
// create view controller
dispatch_async(dispatch_get_main_queue(), ^{
// This is happening on the main thread; all UI updates must happen here.
// here setup view
});
});

另外,您还可以在初始化scrollView并将其保存在局部变量中以及减速时创建ViewController,然后只需设置 View 即可。

关于ios - 在后台线程中创建 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27316523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com