1

テーブルビューセルがあります。クリックすると、別のテーブルビューが開き、テーブルビューセルの値として何かを選択できます。ここでの問題は、2番目のテーブルビューのデータが大きく、ロードに時間がかかることです。そのため、セルをクリックすると、画面がフリーズしますが、これはユーザーフレンドリーではありません。2番目のテーブルビューの読み込み中に進行状況バーを表示したい。しかし、それを追加するのに適した場所を見つけることができません。プログレスバーを表示するコードをどの方法で追加すればよいのでしょうか。

4

3 に答える 3

2

UITableViewCell アクセサリ ビューにUIActivityIndi​​cator (サンプル画像はこちら) を表示するのはどうですか?

いくつかのコードで配置できます...

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
     cell.accessoryView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleGray];
 }

呼び出して、バックグラウンド スレッドで時間のかかる計算を行うこともできます。

[self performSelectorInBackground:@selector(yourLongTakingMethod) withObject:nil];
于 2012-04-15T15:25:00.060 に答える
1

2つのこと:

  1. プログレスバーではなく、別のオプションを真剣に検討します。たとえば、MBProgressHUDのようなものを試してみてください。見た目が良く、目的に合っています。

  2. これを実装するには、UIスレッドがスタックしていないことを確認する必要があります(したがって、アプリケーションが「フリーズ」しない)。これは、バックグラウンドスレッドでロードプロセスを呼び出すことを意味します。ロードプロセスを開始するメソッドは進行状況インジケーターを開始する必要があり、ロードされたデータの表示を処理するメソッド(準備ができたら)はそれを削除する必要があります。幸運を!

于 2012-04-15T15:21:26.397 に答える
0
于 2012-04-15T15:29:23.760 に答える