0

UITableView私は持っているアプリを持っていてCellsUIImageViewsUILabelsのテーマと夜のテーマのイメージ/テキストカラーを変更します(自動的に設定しようとしています)。

私の問題は、テーブルにデータが入力されているときに画像と色を設定しcellForRowAtIndexPath、その日中に「テーマ」を設定し、数時間後に夜の「テーマ」でアプリを再度開くと、アプリはまだ「バックグラウンド」にあり、リロードする必要viewDidLoadはありません (つまり、起動しません)。スクロールするまでUITableView「テーマ」が表示され、スクロールによって新しいセルが表示されると、「テーマ」が表示されます。

時間帯を変更する場合、セル内のオブジェクトをどのように設定すればよいですか? を使用することを考えていNSTimerましたが、セル内のオブジェクトを更新する方法がわかりません。AppDelagateで適切な方法を使用して物事を動かすことも考えていましたが、強制的にリロードする方法はありTableViewますか?

助言がありますか?

4

2 に答える 2

0

applicationWillEnterForeground: を使用し、テーブル ビューで reloadData を呼び出す必要があります。

于 2012-11-11T05:04:06.643 に答える
0

[tableView reloadData]が呼び出されたときに呼び出すことができますviewWillAppear。viewDidLoad は十分な頻度で発生するわけではありません。実際に必要なのは、ビューがユーザーに表示されようとしているときに更新することです。

applicationWillEnterForegroundアプリのデリゲートを確認し、View Controller に信号を送って、この方法でテーブルビューをリロードすることもできます。

于 2012-11-11T05:04:57.583 に答える