私のiPhoneアプリケーションでは、EAGLViewやmetaiosdkなどのUnifeyemobileviewcontrollerクラスを使用しています。このviewcontrollerをロードすると、カメラビューがアクティブになり、これとともにいくつかのmetaioクラス関数も呼び出されます。実際には、ViewControllerのロードに非常に多くの時間がかかります。また、Unifeyeビューコントローラから別のビューに移動して戻ってくると、アプリがクラッシュします。だから、私はちょうど疑問に思っています、バックグラウンドで、またはアプリが開いたときに最初にビューコントローラをロードする方法はありますか?私はわかりません。読み込みを速くする方法があれば、アイデアを共有してください。
2 に答える
0
ビュー コントローラーの init メソッドで実行している作業量に応じて、少なくともビュー コントローラーの初期化中にアクティビティ インジケーターを表示できます。これを非同期に行うには、次のようなコードを使用できます。
- (IBAction)onStartPushed:(id)sender
{
[activityIndicator startAnimating];
// initialize the viewcontroller with a little delay, so that the UI displays the changes made above
double delayInSeconds = 0.1;
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, delayInSeconds * NSEC_PER_SEC);
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){
ARViewController* theViewController = [[ARViewController alloc] init];
// present the viewcontroller
[self presentModalViewController:theViewController animated:YES];
[activityIndicator stopAnimating];
});
}
たとえば、大きな 3D モデルをロードしたり、メイン スレッドをブロックする構成を追跡したりする場合は、ViewController 内で同じことを行うことができます。
于 2012-08-23T07:10:05.000 に答える
0
コントローラーが読み込まれると、カメラが表示されますか? コントローラーは正常に読み込まれますが、カメラの起動に時間がかかります。ここで遅延が発生します。また、imagePickerController の負荷を固定することはできません。代わりに、viewDidAppear でカメラを提示することもできます。これにより、ユーザーは最初にコントローラーを表示し、次に遅延、次にカメラを表示します。
于 2012-07-16T11:06:51.763 に答える