Синхронизация анимаций вставки ячейки UITableView и изменение размера представления

Я реализую пользовательский вид, который имеет UITableView в качестве подзапроса. Этот пользовательский вид также является делегатом указанного UITableView. Мое намерение состоит в том, чтобы иметь два уровня ячеек. На более высокие уровни можно щелкнуть так, чтобы они рухнули и показали более низкие уровни.

развернут

Нажимая на ячейку под названием «категория B», это должно произойти:

развалился

Как вы можете видеть на рисунках, когда -tableView:didSelectRowAtIndexPath: первого уровня нажата (и -tableView:didSelectRowAtIndexPath: таблица расширяется (я использую -insertRowsAtIndexPaths:withRowAnimation: для вставки «подкатегории B1» в таблицу) ,

Я хочу, чтобы этот пользовательский вид был точно таким же размером видимого содержимого таблицы внутри. Прямо сейчас, после вставки новой ячейки, я говорю пользовательскому представлению о сбросе его фрейма с новой высотой содержимого UITableView.

Проблема связана с анимацией: я не могу синхронизировать анимацию вставки UITableView, а рамка пользовательского представления меняет ее высоту. Я могу сделать вид развернутым, а затем анимировать вставку или анимировать вставку сначала, а затем изменить кадр пользовательского представления.

Есть ли способ синхронизировать эти действия, чтобы они выполнялись в одну анимацию?

Interesting Posts
Давайте будем гением компьютера.