テーブルビューセルがあります。クリックすると、別のテーブルビューが開き、テーブルビューセルの値として何かを選択できます。ここでの問題は、2番目のテーブルビューのデータが大きく、ロードに時間がかかることです。そのため、セルをクリックすると、画面がフリーズしますが、これはユーザーフレンドリーではありません。2番目のテーブルビューの読み込み中に進行状況バーを表示したい。しかし、それを追加するのに適した場所を見つけることができません。プログレスバーを表示するコードをどの方法で追加すればよいのでしょうか。
質問する
2487 次
3 に答える
2
UITableViewCell アクセサリ ビューにUIActivityIndicator (サンプル画像はこちら) を表示するのはどうですか?
いくつかのコードで配置できます...
- (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つのこと:
プログレスバーではなく、別のオプションを真剣に検討します。たとえば、MBProgressHUDのようなものを試してみてください。見た目が良く、目的に合っています。
これを実装するには、UIスレッドがスタックしていないことを確認する必要があります(したがって、アプリケーションが「フリーズ」しない)。これは、バックグラウンドスレッドでロードプロセスを呼び出すことを意味します。ロードプロセスを開始するメソッドは進行状況インジケーターを開始する必要があり、ロードされたデータの表示を処理するメソッド(準備ができたら)はそれを削除する必要があります。幸運を!
于 2012-04-15T15:21:26.397 に答える
0
于 2012-04-15T15:29:23.760 に答える