twitterクライアントのiOS版のようなプロジェクトに取り組んでいます。テーブルビューを設計するとき、すべてのセルがコンテンツ(ツイート)に対応するように高さを変更します。twitterのようなクライアントでUITableViewCellを再利用する
しかし、問題が発生しました。現在の画面のセルの高さはうまくいきますが、下にスクロールすると古いセルの高さが再利用されます。
twitterクライアントのiOS版のようなプロジェクトに取り組んでいます。テーブルビューを設計するとき、すべてのセルがコンテンツ(ツイート)に対応するように高さを変更します。twitterのようなクライアントでUITableViewCellを再利用する
しかし、問題が発生しました。現在の画面のセルの高さはうまくいきますが、下にスクロールすると古いセルの高さが再利用されます。
はい、テーブルプログラミングでは、モデルビューコントローラのアプローチが本当に役立ちます。 tableView:didDeselectRowAtIndexPath:
のようなセルの高さを変更すると、動作すると感じるかもしれませんが、そうではありません。この方法でできることは、データを変更してテーブル(またはその一部)をリロードすることです。
ます上記のコメントで述べたようにする必要があります:
したいWhenewer
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
に正しいビュー(セル)を提供
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
に各セルの正しい高さを提供します何らかの変更を加えるには、model
(またはコンテンツ関連のデータを保持する適切なオブジェクト)でデータを変更してから、UITableView's reload
のいずれかを呼び出しますおそらくhods、:
- (void)reloadData
- (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation
Appleのドキュメントには、(私はそれが非常に留年だと思うが)不足することができます: これらはあなたのための基本的なリンクを次のようになります。
UITableViewDataSource Protocol Reference
セルに表示する必要があるコンテンツに基づいて、 'heightForRowAtIndexPath:'にセルの高さを設定していますか? – jonkroll
@jonkrollはい、私はすでにそれを行っています。私はresueセルの高さが変更可能であると思っていますか? – ericyue
ムーンライトが正しいです。再利用セルの高さが何であるかは関係ありません。デリゲートメソッド 'heightForRowAtIndexPath'を使いたいとします。それが高さを変えないなら、あなたは何か間違ったことをした。より良い答えが必要な場合は、いくつかのコードを共有してください。 – dbrajkovic