当我的应用程序第一次加载时,它会更新一个大约需要一分钟的 SQLite 表。为了让用户了解情况,我计划使用 progressView 来显示数据加载,但是当进程运行时,屏幕会一直保持黑色,直到进程完成。该过程是从 viewDidLoad 调用的,所以我需要使用某种线程来使屏幕在后台完成加载吗?
问问题
236 次
2 回答
0
您可以在后台处理完成后开始为进度视图设置动画,然后在屏幕上加载数据后停止动画并隐藏。
您不需要为上述使用任何线程,但对于后台处理,您可以生成一个线程,然后一旦您在屏幕上绘制数据,就可以在主线程上发布通知,因为 UI 更新需要在主线程中处理只要。
performSelectorOnMainThread可用于将事件发布到主线程。
于 2011-03-25T09:46:21.910 回答
0
如果您在主线程上进行加载,那么您的屏幕将不会更新,因为 UI 组件在主线程上运行。
因此,要显示进度条,您需要将 sqlite 更新移动到新线程,是的。:)
请参阅http://www.xprogress.com/post-36-threading-tutorial-using-nsthread-in-iphone-sdk-objective-c/
于 2011-03-25T09:48:14.573 回答