2012-02-08 6 views
0

私は、ストーリーボードのビューのカスタムクラスとして使用されるUITableViewControllerのサブクラスを作成しました。ビューには、プロトタイプセルとして定義された多数のセクション/行がインスタンス化され、期待どおりに表示されます。 UITableViewデリゲートメソッドのほとんどは、セクションの量、行などを処理するスーパーのメソッドを呼び出すだけです。カスタムUITableViewControllerとStoryboardから定義されたプロトタイプセルを使用したランダムなUI更新

-viewDidLoadのセルを更新するために使用されるコンテンツをキャッシュしておき、私のサーバーからコンテンツをリロードします。後でデータをリバインドします(メインスレッドの-performSelectorOnMainThread: :)。この時点で、セルの内容(主にラベル)の一部がデータの消去され、10〜15秒の間の新しいデータには更新されないように見えることは明らかです。その時点で、テーブルビューに表示されるコンテンツまたはスクロールするコンテンツのいずれかが表示されます。

セレクタが呼び出されていて、メインスレッドでUI要素のテキストプロパティが設定されているがランダムに表示されていることがわかりました。更新しないでください。私は-setNeedsDisplayのtableView、コントローラのビューと-reloadDataのtableView上に追加しようとしました(ただし、最後のものはプロトタイプのセルであるため不必要と思われました)。

誰でもこれを見かけますか?

+0

UITextViewを使用し、私は「疑わしい」の修正を発見した - UITextFieldsに私のUILabelsを変更するには、それを修正しました。 UILabelsが同様に更新されない理由を調べようとしているので、これを修正版として投稿していません。 –

答えて

0

私のコメントは本当に私の問題を解決しました。 UILabelは、変更されたときには更新されませんが、displayまたはsetNeedsDisplayで強制しようとした場合でも、内部的に再描画するときに決定されます。

策:代わりにUILabel

0

スレッドアスペクトやtableViewの処理方法が原因であるかどうかはわかりません。それがtableViewの場合は、このpostをチェックしてください。これは、動的でプロトタイプのtvCellを正しく処理するまで、私のアプリが経験していたデータの消失と類似点があるからです。

関連する問題