collectionViewContentSize en iOS 10 usando celdas de tamaño automático

Antes de iOS 10, tenía una vista de tabla de tamaño automático que consistía únicamente en un UICollectionView con celdas de tamaño propio utilizando un estándar UICollectionViewFlowLayout. El tamaño de las celdas de la vista de colección se realiza mediante el diseño automático. Para que la celda de la tabla se dimensione correctamente, tuve que encontrar el tamaño del contenido de la vista de colección y usarlo dentro del sistema de la celda de la tablaLayoutSizeFittingSize: withHorizontalFittingPriority: verticalFittingPriority :.

También descubrí que la llamada a collectionView.collectionViewLayout.collectionViewContentSize usaba el tamaño estimado de artículo en lugar de los tamaños de celda de tamaño correcto a menos que llamara a collectionView layoutIfNeeded. Esto dio como resultado un systemLayoutSizeFittingSize de:

- (CGSize) systemLayoutSizeFittingSize:(CGSize)targetSize withHorizontalFittingPriority:(UILayoutPriority)horizontalFittingPriority verticalFittingPriority:(UILayoutPriority)verticalFittingPriority
{
    self.collectionView.frame = CGRectMake(0, 0, targetSize.width, FLT_MAX);
    [self.collectionView layoutIfNeeded];

    CGSize collectionViewContentSize = self.collectionView.collectionViewLayout.collectionViewContentSize;
    CGFloat verticalPadding = fabs(self.collectionViewTopPaddingConstraint.constant) + fabs(self.collectionViewBottomPaddingConstraint.constant);
    CGSize cellSize = CGSizeMake(collectionViewContentSize.width, collectionViewContentSize.height + verticalPadding);

    return cellSize;
}

La llamada a layoutIfNeeded ahora provoca un*** Assertion failure in -[_UIFlowLayoutSection computeLayoutInRect:forSection:invalidating:invalidationContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3599.6/UIFlowLayoutSupport.m:823

¿Estoy violando alguna regla ética al llamar a layoutIfNeeded dentro de systemLayoutSizeFittingSize? ¿Existe algún método mejor para calcular el tamaño del contenido de una vista de colección cuando se utilizan celdas de tamaño propio? Preferiría no tener que pasar del diseño automático a hacer estos cálculos de tamaño en el código, pero esa es ciertamente la peor opción.

Respuestas a la pregunta(4)

Su respuesta a la pregunta