0

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

- (無効) ボタン
{{

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];

} }

4

1 に答える 1

0

プログレス バー ルーチンを完全に別のメソッドに配置しようとしましたか?

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

于 2009-05-25T06:49:20.393 に答える