0

最後の行を除くすべての行は、テーブル内で同じ高さです。最後の行を忘れた場合、通常の状況では、テーブル ビューの高さを次のように設定します。

[self.tableView setRowHeight:40.0f];

heightForRowAtIndexPathただし、最後の行を別の高さにしたい場合は、すべてのインデックス パスに対して呼び出されるデリゲート メソッドを実装します。これは非常にコストがかかるようで、1000 行を超えるデータのパフォーマンスに影響を与える可能性があります。

他に方法はありませんが、フィードバックが得られるまでは楽観的です。

4

3 に答える 3

1

1 つの if ステートメントに基づいて 1 つまたは別の高さだけを返す場合、おそらくそれほどコストはかかりません。メソッド呼び出しはかなり安価です。なんらかの計算 (通常、行内のテキストの長さに基づいて可変の高さを計算する) を実行している場合、パフォーマンス ヒットが見られます。このメソッドは、tableView がリロードされたときにのみ呼び出されるため、スクロールのパフォーマンスは問題になりません。

何かが遅くなると仮定して複雑な回避策を作成するのではなく、常に最初に自然なフレームワーク メソッドを使用してパフォーマンスを確認する必要があります。男が言ったように、時期尚早の最適化など。

また、テーブルに 1000 行を超える行がある場合は、横にインデックスを配置することをお勧めします。そうしないと、使用できなくなります。

于 2012-11-25T07:55:42.887 に答える
0
No you can implement this by specifying different height for different rows as per your requirement.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == [YourArray count]-1)
    {

        return CustomHeightYouNeedForYourCell;
    }

    return DefaultheightForAllCells;
}
于 2012-11-25T05:41:45.337 に答える
0

テーブルのフッタービューを実装し、デリゲートを実装し、

- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section;

フッター ビューが要件を満たすことができるかどうかを確認します。フッター ビューを使用できない場合は、質問に記載されているように、行の高さを設定するためにテーブル ビューのデリゲート メソッドを実装する必要がある場合があります。そこで何らかの高価な操作を行わない限り、パフォーマンスが低下することはありません。

于 2012-11-25T05:28:56.300 に答える