【发布时间】:2010-10-18 18:35:27
【问题描述】:
我想在进行磁盘 I/O 之前启动一个活动指示器。
如何立即启动指示器,而不是等待下一个显示循环周期?或者如何在开始磁盘 I/O 之前强制显示循环?
丹
【问题讨论】:
标签: iphone cocoa-touch ipad uikit ios
我想在进行磁盘 I/O 之前启动一个活动指示器。
如何立即启动指示器,而不是等待下一个显示循环周期?或者如何在开始磁盘 I/O 之前强制显示循环?
丹
【问题讨论】:
标签: iphone cocoa-touch ipad uikit ios
如果我理解正确,您的 IO 操作需要一些时间,并且您希望 UI 在执行时更新,对吗?如果是这种情况,您必须将操作移动到后台线程,以便 UI 有机会自行更新,没有解决方法。使用 performSelectorInBackground:withObject: 调用您的 IO 操作,使用 NSOperation,如果您的目标是 iOS 4.0+,则使用块
【讨论】:
据我所知,您不能强制指标现在开始。要推送一个方法调用,使其成为 runloop 中的下一件事,您可以使用:
[self performSelector:@selector(taskToDo) withObject:nil afterDelay:0]
这会将“taskToDo”(可以选择使用单个参数)调度到当前运行循环中,以便尽快发生。然后让那段代码退出。一种等效的方法是安排一个 NSTimer,但从语法上讲,这有点冗长。
【讨论】: