objective-c - 我可以在单独的线程上构建 UIView 元素吗?

标签 objective-c ios multithreading uiview uiactivityindicatorview

我有一个应用程序,必须在屏幕上加载并渲染大量内容(主要是从数据库加载)。

我不会在这里发布所有代码,但实际上它只是构建了一组添加到 UIScrollView 对象的 UIView 对象。没什么太复杂的,只是加载了很多东西。目前这需要一秒钟左右渲染所有内容(在主线程上运行)。

我想在加载发生时显示事件指示器,我认为最好的方法是让需要很长时间的方法在后台线程上发生并“报告完成后返回”。

问题是这样的。我知道所有实际的绘制都是由主线程完成的,所以是否可以创建一个新线程并构建一组 UIView 对象,然后在屏幕上绘制?

最佳答案

有一个很棒的 WWDC2012 session 视频,它完全适合您的用例:

WWDC2012 Building Concurrent User Interfaces in iOS

基本上,技巧是在另一个队列上准备和绘制 View ,然后将其发送到主队列。

关于objective-c - 我可以在单独的线程上构建 UIView 元素吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13058750/

相关文章:

ios - 在 iOS6 或更低版本的应用程序中打开 map

ios - 在进行选择器调用之前显式检查nil是否有任何好处?

javascript - 如何在 Objective-C 中查看登录是否成功?

ios - 如何播放iOS系统声音并取消回调

ios - 如何添加约束以右对齐 UITableViewCell 内的图像

swift - NSOperationQueue 在计算任务上的性能比单线程差

objective-c - EXC_BAD_ACCESS 滚动TableView

c# - 倒计时通知线程延迟的最佳实践

c++ - 在新线程中调用方法并将返回值分配给变量

ios - 如何从 UITableView 中删除一行?