0

それぞれのセクションで何かを計算するには、さまざまなセクションのテーブルビューセルをループする必要があります。しかし、私がこれをやろうとすると:

CustomCell * c = (CustomCell *)[self.table cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:i]

セクション「i」が表示されていない場合、コンテンツを取得できません。

計算メソッドを呼び出す前に、各セルで計算する内容が異なるため、テーブルビューにデータを入力してから計算することはできません。

何か案は?

4

1 に答える 1

3

オブジェクトは基本的にプレゼンテーション層に属しているため、オブジェクトのコンテンツに基づいて計算を実行するべきではありません。プレゼンテーション層では計算は行われず、物を隠したり表示したりするだけです。UITableViewCell

UITableViewDataSource計算の場合は、データを取得するレイヤー (おそらくモデルクラス)に直接移動し、そこで計算を行う必要があります。さらに良いのは、計算をモデル層に移動し、オンデマンドで取得するメソッドを出すことです。

他の人が作成した既存のコードを変更する場合は、まず のtableView:cellForRowAtIndexPath:メソッドを調べてUITableViewDataSource、データの取得元を確認します。おそらく、その場所には、画面に表示されているかどうかに関係なく、利用可能なすべてのデータがあります。

于 2012-12-20T18:46:40.267 に答える