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

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

развернут

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

развалился

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

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

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

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

  • Tableview не прокручивается со статическими данными
  • В чем смысл сообщения «no index path for table cell is reused» в iOS 6/7?
  • Как определить выбор ячейки в UITableView - Swift
  • reloadSection приводит к ошибке «попытка удалить раздел 1, но перед обновлением есть только 1 раздел с userInfo»
  • Обновление TableView после удаления анимации завершается
  • UITableViewCell подвижная анимация
  • Фоновый рисунок цвета UIViewController для Grouped table
  • Почему SDWebImage не показывает изображение в ячейке после загрузки?
  • uitableview: вложенные заголовки разделов
  • Метка переменной длины, высота строк таблицы и автоматическая компоновка
  • Как остановить табличное представление от отступов при редактировании, все еще имея кнопки добавления / удаления?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.