我有一个应用程序,必须在屏幕上加载并渲染大量内容(主要是从数据库加载)。
我不会在这里发布所有代码,但实际上它只是构建了一组添加到 UIScrollView 对象的 UIView 对象。没什么太复杂的,只是加载了很多东西。目前这需要一秒钟左右渲染所有内容(在主线程上运行)。
我想在加载发生时显示事件指示器,我认为最好的方法是让需要很长时间的方法在后台线程上发生并“报告完成后返回”。
问题是这样的。我知道所有实际的绘制都是由主线程完成的,所以是否可以创建一个新线程并构建一组 UIView 对象,然后在屏幕上绘制?
最佳答案
有一个很棒的 WWDC2012 session 视频,它完全适合您的用例:
WWDC2012 Building Concurrent User Interfaces in iOS
基本上,技巧是在另一个队列上准备和绘制 View ,然后将其发送到主队列。
关于objective-c - 我可以在单独的线程上构建 UIView 元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13058750/