Sincronice las animaciones de la inserción de células UITableView y el cambio de tamaño de una vista

Estoy implementando una vista personalizada que tiene un UITableView como subvista. Esta vista personalizada es también el delegado de dicho UITableView. Mi intención es tener dos niveles de células. Los de nivel más alto se pueden hacer clic para que se queuepsen y muestren los niveles más bajos.

uncollapsed

Al presionar la celda llamada "categoría B" esto debería suceder:

colapsado

Como puede ver en las imágenes, cuando se hace clic en una celda de primer nivel (y se -tableView:didSelectRowAtIndexPath: se llama), la tabla se expande (estoy usando -insertRowsAtIndexPaths:withRowAnimation: para insert "subcategoría B1" en la tabla) .

Quiero que esta vista personalizada sea exactamente el mismo tamaño del contenido visible de la tabla en el interior. En este momento, después de la inserción de la nueva celda, le digo a la vista personalizada que restablezca su marco con la nueva altura de contenido de UITableView.

El problema viene con la animation: no puedo sincronizar la animation de inserción UITableView y el marco de la vista personalizada cambiando su altura. Puedo hacer que la vista se amplíe y luego se anime la inserción, o se anima la inserción primero y luego se cambia el marco de la vista personalizada.

¿Hay alguna manera de sincronizar estas acciones para que se realicen en una única animation?