2012-03-28 25 views

答えて

2

できません。 動的コンテンツを表示する前に、アプリケーションを起動する必要があります。 最初のViewControllerがロードされたら、もちろんプログレスバーを表示してロードすることができます。 その前に、静的画像を表示することができます。Default.png & [email protected]-[ViewController viewDidLoad]の方法が終了した後に重い読み込みを遅らせると、重い作業をしながらあらゆる種類のGUIを表示できます。

編集: この例では、あなたのviewDidLoadで新しいスレッドを切り離し、(1秒間この場合、睡眠中に)いくつかの重い作業を行うとUIProgressViewを更新し、それが0.1とprogressviewをインクリメントし、10回眠るよう進捗状況をログに記録します毎回。

- (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]]; 
} 
+0

私たちが睡眠/重労働ではなくバックグラウンドスレッドとして進行状況バーを選択した理由はありますか?私はそれが他の方法でより良いと思いました – bkbeachlabs

0

最初の画面で置きロードバーをして、それを表示した後、別のスレッドでは、あなたの計算重いコードを起動します。

+0

最初の画面は何ですか?私はviewDidLoad mot hodで初期化しますか? – William

+0

最初の画面は、アプリケーションデリゲートの 'application:didFinishLaunchingWithOptions:'メソッドの 'UIWindow'のサブビューとして追加されたものです。残りの部分については、@ sveinungkbの答えをチェックすることができます。 – Alexander

+0

起動画像機能を使用して静的画像Default.pngを表示します。ローディングバーをアプリケーション:didFinishLaunchingWithOptions:メソッドに配置できますか?私は試してみましたが、バーは見えませんか?どのように私は静的なデフォルト画像上の一番上にそれを変更することができますか? – William

関連する問題