【发布时间】:2012-03-28 06:51:55
【问题描述】:
启动我在 iPhone 上编写的应用程序需要很长时间。我希望显示一个等待进度条来指示启动进度的百分比。谁能帮我?我是IOS开发新手。
【问题讨论】:
标签: ios cocoa-touch progress-bar
启动我在 iPhone 上编写的应用程序需要很长时间。我希望显示一个等待进度条来指示启动进度的百分比。谁能帮我?我是IOS开发新手。
【问题讨论】:
标签: ios cocoa-touch progress-bar
你不能。
需要先启动应用程序,然后才能显示任何动态内容。
在您的第一个 ViewController 加载后,您当然可以显示一个进度条并进行加载。
在此之前,您只能显示静态图像 Default.png & Default@2x.png。
如果您将繁重的加载延迟到 -[ViewController viewDidLoad]-method 完成之后,您可以在执行繁重的工作时显示任何类型的 GUI。
编辑:
此示例将在您的 viewDidLoad 中分离一个新线程并执行一些繁重的工作(在本例中睡眠 1 秒)并更新 UIProgressView 并在睡眠 10 次时记录进度,每次将 progressview 递增 0.1。
- (void)viewDidLoad
{
// .....
[NSThread detachNewThreadSelector:@selector(workerBee) toTarget:self withObject:nil];
}
- (void)workerBee
{
NSAutoreleasePool* workerPool = [[NSAutoreleasePool alloc] init];
// Put your image loading between this line and [workerpool release]
for (float i = 0; i<1; i+= 0.1)
{
[self performSelectorInBackground:@selector(updateProgress:) withObject:[NSNumber numberWithFloat:i]];
sleep(1000);
}
[workerPool release];
}
- (void)updateProgress:(NSNumber*)number
{
NSLog("Progress is now: %@", number);
[progressView setProgress:[number floatValue]];
}
【讨论】:
在第一个屏幕中放置一个加载栏,并在显示后在另一个线程中启动计算量大的代码。
【讨论】:
UIWindow 的子视图添加到您的应用程序委托中的application:didFinishLaunchingWithOptions: 方法中的屏幕。其余的你可以查看@sveinungkb 的答案。
application... 方法中,您必须将进度条添加为您显示的第一个视图的子视图。