セルのスイッチをクリックすると、テーブルビューの多くのセルの高さが変わる可能性があるテーブルビューがあります。どのセルがサイズを変更するかを計算するのは少し複雑なので、同じコードを2回呼び出さないようにします。
heightForRowAtIndexPath
メソッドがあります(これは複雑なメソッドです)。
変化しないものに影響を与えることなく、細胞の成長または機能を縮小する方法をアニメーション化する方法はありますか?
UIView
アニメーション、アニメーションのあるセクションのreloadDataを試しましたが、スムーズなものは見つかりませんでした。変更する必要のある各セルをキャッチし、各セルのアニメーションでreloadDataを呼び出そうとしました。動作に近づいていますが、セルは次々に更新されています。そして、前に言ったように、heightForRowAtIndexPathメソッドを2回呼び出す必要があるため、これは実行したくありません。
私が欲しいのは、高さが変化する各セルを、フェードではなく、成長または縮小のようなものでアニメーション化できるものです。
あなたはそれをする方法を知っていますか?もう1つ、サイズが変更されると、セルの内容が少し変化します(テキストの追加、背面の色の変更など)
UITableViewには、セルの高さの変更をアニメーション化するための巧妙なトリックがあります。空の更新ブロックをテーブルビューに送信しても、セルは挿入または削除されませんが、テーブル全体のセルの高さは再計算されます。したがって、このコードは奇妙に見えますが、それを実行する必要があります。
[tableView beginUpdates];
[tableView endUpdates];
更新されたセルの内容も変更する場合は、もちろん、reloadRowsAtIndexPaths:withRowAnimation:
への1つ以上の呼び出しをupdatesブロックに追加する必要があります。