0

特定の通知を受信したときに、テーブル データをリロードせずに、どのように tableview セルを更新できますか。通知は、更新する必要があるセルの ID を示します。したがって、すべてのテーブル セルを反復処理し、関連するテーブル セルのみをリロードせずに更新したいと考えています。これどうやってするの

4

2 に答える 2

0

[tableView visibleCells]表示されているすべてのセルのリストを取得するために使用します。この配列を反復処理して、更新する必要があるセルが表示されているかどうかを確認してから、必要なことを行います。(この方法は、セルを再利用する場合です)。

于 2012-08-02T17:41:00.110 に答える
0

reloadRowsAtIndexPaths:withRowAnimation:フレームワークの機能を奪おうとする代わりに、組み込みを使用することができます。これにより、テーブル全体やセクション全体ではなく、要求したセルのみが効率的にリロードされます。

特定のアニメーション効果を使用して、指定された行を再読み込みします。

行を再ロードすると、テーブル ビューはデータ ソースにその行の新しいセルを要求します。テーブルは、古い行をアニメーション化するのと同じように、その新しいセルをアニメーション化します。セルの値が変化していることをユーザーに警告する場合は、このメソッドを呼び出します。ただし、ユーザーへの通知が重要でない場合、つまり、セルに表示されている値を変更したいだけの場合は、特定の行のセルを取得して新しい値を設定できます。

このメソッドが beginUpdates および endUpdates メソッドによって定義されたアニメーション ブロックで呼び出されると、deleteRowsAtIndexPaths:withRowAnimation: と同様に動作します。UITableView がメソッドに渡すインデックスは、更新前のテーブル ビューの状態で指定されます。これは、アニメーション ブロック内の挿入、削除、およびリロード メソッド呼び出しの順序に関係なく発生します。

iOS 3.0 以降で利用できます。

于 2012-08-02T18:23:43.957 に答える