2012-02-08 14 views
1

この問題は私をナットにしています。UITableViewCellサブビューは再描画まで表示されません

私はストーリーボードにUITableViewCellというプロトタイプを持っています。これには複数のサブビューが含まれています。サブビューの1つ、UILabelは、誤動作しています。

テーブルビューが読み込まれて最初に表示されると、すべてのセルが正常に表示されます。しかし、テーブルビューが下にスクロールすると、最終的にUILabelサブビューなしでセルの1つが表示されます。それは常にリサイクルされている最初のセルであるようです。

しかし、テーブルビューをスクロールダウンしても、誤ったセルがテーブルビューの上部で切り取られると(画面の上からスクロールされるとすぐに)、ラベルは表示されたとおりに表示されます。

したがって、ラベルはそこにあり、cellForRowAtIndexPathメソッドで割り当てられた文字列を受け取ります。何らかの理由で描かれていないだけです。私はさまざまな場所にsetNeedsDisplayメッセージを挿入しようとしましたが、それは助けにはなりません。

また、別のビューコントローラのストーリーボードで重複するビュー階層を持つ非常に同じUITableViewCellサブクラスを使用していて、そこに問題はありません。

私はこの謎を解き明かすためにどのように考え始めることができますか?

ありがとうございます!

+0

tableView:cellForRowAtIndexPath?で初期化した後、テーブルセルまたはサブビューを変更していますか? –

+0

私は午前中です。私はラベルのテキストを設定して、他のカスタムUIViewサブクラスでいくつかのことをやっています。そのすべてがうまく動作します。描かれていないのは単なるUILabelです。 – CharlieMezak

+0

私は本当に似たようなことをしています。 1つの特定のセルでは、1つのラベルは描画されません。私がコードを壊してしまった場合、セルは完全にうまく見えます。 setNeedsDisplayを実行すると、それが表示されます。私を運転するナッツ! – jasongregori

答えて

1

再利用可能なセルを使用している場合にのみ問題があるようですが、再利用可能なセルの値は、スクロールする準備ができるまで設定されていない可能性があります。

+0

他のすべてのサブビューが正しく設定されているため、セルが画面に表示される前に*値が設定されていることがわかりました。描かれていないラベルだけです。ラベルが表示されたら、テキスト値が正しいので、セルが画面に表示される前に他のすべての値とともに値が設定されているように見えます。あなたが解決策として推薦しているものがわからない... – CharlieMezak

+0

私が考えることができる唯一の他の事は、ラベルのビューがサブビューとして追加されていないことです。そうでなければcellForRowAtIndexPathコードを投稿したいかもしれません。 –

関連する問題