2012-02-25 7 views
4

twitterクライアントのiOS版のようなプロジェクトに取り組んでいます。テーブルビューを設計するとき、すべてのセルがコンテンツ(ツイート)に対応するように高さを変更します。twitterのようなクライアントでUITableViewCellを再利用する

しかし、問題が発生しました。現在の画面のセルの高さはうまくいきますが、下にスクロールすると古いセルの高さが再利用されます。

+1

セルに表示する必要があるコンテンツに基づいて、 'heightForRowAtIndexPath:'にセルの高さを設定していますか? – jonkroll

+0

@jonkrollはい、私はすでにそれを行っています。私はresueセルの高さが変更可能であると思っていますか? – ericyue

+2

ムーンライトが正しいです。再利用セルの高さが何であるかは関係ありません。デリゲートメソッド 'heightForRowAtIndexPath'を使いたいとします。それが高さを変えないなら、あなたは何か間違ったことをした。より良い答えが必要な場合は、いくつかのコードを共有してください。 – dbrajkovic

答えて

3

はい、テーブルプログラミングでは、モデルビューコントローラのアプローチが本当に役立ちます。 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のドキュメントには、(私はそれが非常に留年だと思うが)不足することができます: これらはあなたのための基本的なリンクを次のようになります。

UITableView Class Reference

UITableViewDataSource Protocol Reference

UITableViewDelegate Protocol Reference

Table View Programming Guide for iOS

関連する問題