iphone - 画像の処理中のiOS設定の進行状況バーの値

iphone ios user-interface quartz-graphics uiprogressview

Quartzを使用していくつかの画像を処理するアプリがあり、各アクションの後に変化するUIProgressViewが必要でした。 (例:0.0 0.2 0.4 0.6 0.8 1.0)

問題は、私の画像が処理されている間、UIが完全にロックされているように見え、すべてのプロセスが完了した後にのみ値が変化することです(つまり、サブステップを実行せずに1.0に到達するだけです)。

これに遭遇したことがありますか?

擬似:



for(uint i=0;i<5;i++){
    // Execute some Quartz based action here, such as CGContextDrawTiledImage etc...
    myProgress.progress = (i+1) * 0.2;          
}


したがって、実際には、各アクションの後に進行状況バーが変化するのではなく、最後に1回だけ1.0に変化します。あなたのフィードバックまたは経験またはこれをいただければ幸いです。

ありがとうございました
シャイ。
答え
アセットまたはプログレスバーのいずれかを別のスレッドで更新して、2つを並行して更新できるようにする必要があります。

[NSThread detachNewThreadSelector:selector toTarget:target withObject:object];をご覧ください

進行状況をメンバー変数にする

 [NSThread detachNewThreadSelector:@selector(updateFilterProgress) toTarget:self withObject:nil];

 prgLoader.progress = x;


- (void) updateFilterProgress{

    NSAutoreleasePool *pool = [NSAutoreleasePool new];

    while ([prgLoader.progress floatValue] < 1.0f)    //Keep this thread alive till done loading. You might want to include a way to escape (a BOOL flag)
    {
        GTMLoggerInfo(@"Updating progress to %f", [progress floatValue]);
        prgLoader.progress = [progress floatValue];
    }
    [pool release];

}
関連記事

iphone - アノテーションを選択して特定の詳細ページにIDを渡す方法は?

iphone - iOS多言語はシミュレータでは機能しますが、デバイスでは機能しません

iphone - JSONKit + Lidenbrock対RestKit?(CoreDataを使用)

iphone - Apple Storeから古いアプリケーションを削除して、同じ名前の新しいアプリケーションをアップロードしますか?

iphone - Cocos2dアプリケーションのどこにFacebookのiOS SDKコードを実装すればよいですか?

iphone - UITableView iOSのNSArrayデータソースとしての複雑なJSON

iphone - XcodeとAdMobで初めて何をすべきか?

iphone - アプリからiPhone設定アプリを起動するにはどうすればよいですか?

iphone - iOSアプリの使用統計をサーバーに報告する無料のソフトウェアはありますか?

iphone - iOSでFacebook Graph APIを適切に使用する方法