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