2009-05-25 13 views
0

私のアプリケーションでは、ビューの読み込み中に何が起こっていたのかをユーザに知らせるために、自分のビューの1つが読み込みに通常より時間がかかります(多くのピクチャを含むスクロールビューです) 。だから私は、通常はどれくらい時間がかかるのかをタイマーを使って進捗バーに入れます。唯一の問題は、ボタンに触れるとiPhoneがまだビューをロードしてから、新しいビューが開くとプログレスバーが表示され、タイマーが開始されることです。プログレスバーがボタンと同じビューに表示され、ボタンが押されると2番目のビューがロードされ、プログレスバーがいっぱいになると2番目のビューに進むように設定するにはどうすればいいですか?ここに私がこれまで持っていたコードがあります。プログレスバーの使用

- (void) button 
{{

if (!self.baseSheet) { baseSheet = [[UIActionSheet alloc] initWithTitle:@"Please Wait" delegate:self cancelButtonTitle:nil destructiveButtonTitle: nil otherButtonTitles: nil]; [baseSheet setNumberOfRows:5]; [baseSheet setMessage:@"Loading Photos"]; UIProgressView *progbar = [[UIProgressView alloc] initWithFrame:CGRectMake(50.0f, 70.0f, 220.0f, 90.0f)]; progbar.tag = PROGRESS_BAR; [progbar setProgressViewStyle: UIProgressViewStyleDefault]; [baseSheet addSubview:progbar]; [progbar release]; } UIProgressView *progbar = (UIProgressView *)[self.view viewWithTag:PROGRESS_BAR]; [progbar setProgress:(amountDone = 0.0f)]; [NSTimer scheduledTimerWithTimeInterval: 0.5 target: self selector: @selector(incrementBar:) userInfo: nil repeats: YES]; [baseSheet showInView:self.view]; [[self navigationController] pushViewController:[[ScrollViewController alloc] init] animated:YES];

}}

答えて

0

は、あなたが完全に別の方法にプログレスバーのルーチンを配置しようとしたことがありますか?

時には、メソッド内のいくつかのルーチン(特にUIView/UIImageView関連の変更)の実行速度に問題が発生することがあります。特定のビュー関連ルーチンからの変更は、実際にはが表示される前に実行されたものよりも速く実際に画面上で更新され、と表示されます。私は、通常、ビューの変更を表示しているルーチンを完全に別のメソッドに置き、そのメソッドを前に呼び出すことで、これを修正できることがわかりました。

関連する問題