UICollectionView – iOS 10: falla en el simulador iPhone 6 Plus pero funciona en un dispositivo real

He creado una UICollectionView que funciona bien en dispositivos pequeños como iPhone 5s / SE / 6 / 6s / 7 en ambos simuladores y dispositivos reales, pero tengo una situación extraña cuando se trata de iPhone 6Plus, iPhone 7Plus y cualquier versión de iPad. Funciona bien en un dispositivo real, pero se bloquea en un simulador con el siguiente error:

Error de aserción en – [_ UIFlowLayoutSection computeLayoutInRect: forSection: invalidating: invalidationContext:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.5.2/UIFlowLayoutSupport.m:823

Terminar la aplicación debido a la exception no detectada 'NSInternalInconsistencyException', razón: 'UICollectionViewFlowLayout error interno'

Lo que descubrí hasta ahora es que si elimino el estimateItemSize funciona bien pero el layout automático ya no funciona, pero si lo tengo habilitado se bloquea en el simulador.

Estoy usando la última versión de Xcode y iOS 10.

¿Alguna idea de por qué se está estrellando?

Llamar invalidateLayout antes del layout es una solución para este problema.

En una subclass UIViewController :

 override func viewWillLayoutSubviews() { super.viewWillLayoutSubviews() collectionView.collectionViewLayout.invalidateLayout() } 

o en una subclass UIView :

 override func layoutSubviews() { super.layoutSubviews() collectionView.collectionViewLayout.invalidateLayout() }