1

私の例では、最初に1行の2つのセクションがあります。誰かがセクションの最初の行をクリックすると、このセクションの他のすべての行が挿入されます。

[tableView insertRowsAtIndexPaths:indexArray withRowAnimation:UITableViewRowAnimationTop];

これは正常に機能しますが、最初の行の背景を更新する必要があります。これも機能しますが、最初の行をリレーアウトする必要があります。setNeedsDisplayとsetNeedsLayoutを試しましたが、機能しません。reloadDateは正しい背景を表示しますが、スライド効果を破壊します。

私はこれの1つで行を更新できることを知っています:

[tableView reloadRowsAtIndexPaths:indexArrayReload withRowAnimation:UITableViewRowAnimationFade];
[tableView reloadRowsAtIndexPaths:indexArrayReload withRowAnimation:UITableViewRowAnimationNone];

しかし、それらは行の高さを一時的に変更します。実際のフェージング効果またはアニメーションなしのリロードが必要です。

これが状況の写真です:

ここに画像の説明を入力してください

編集:私はビデオを作りました:

これは問題を示しています!

4

1 に答える 1

1

これが解決策です:

[tableView beginUpdates];
...
[tableView endUpdates];

別のスレッドで気に入りました。

于 2013-02-19T16:02:01.553 に答える