私はtableViewと、URLからデータをフェッチしてテーブルをリロードする「リロード」ボタン、コストのかかる操作(特にフェッチ部分)を持っています。
これが起こっている間にユーザーに情報を表示したいので、「読み込み中」のUITextViewを一番上に置き、フェッチ/リロード操作を行い、UITextViewを削除すると思いました。
コードは次のとおりです。
- (IBAction)refreshData:(id)sender {
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height-30, self.view.frame.size.width, 30)];
[self.view addSubview:textView];
textView.text = @"Loading..";
textView.textColor = [UIColor whiteColor];
textView.backgroundColor = [UIColor grayColor];
textView.editable = NO;
[self fetchData];
[self.tableView reloadData];
[textView removeFromSuperview];
}
私が得た動作は、UITextView が画面にレンダリングされる前に fetchData が実行されることです。これは、UITextView が画面に表示される前に実行される fetchData 内に NSLogs があるためです。
ここで私が見逃している明らかなものはありますか?ありがとう。