¿Cuál es la mejor manera de deshabilitar los fundidos cruzados en las rotaciones o límites de UICollectionView / UICollectionViewLayout?

Tengo una subclase deUICollectionViewLayout que coloca las células en un círculo. El diseño vuelve.YES para la llamadashouldInvalidateLayoutForBoundsChange:. En la rotación, la celda en la posición inicial se desvanece y la celda en la posición final se desvanece.

Al agregar el siguiente código a mi diseño, puedo desactivar los desvanecimientos y el círculo de elementos parece simplemente girar con el cambio de orientación:

- (UICollectionViewLayoutAttributes *)initialLayoutAttributesForAppearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
    return nil;
}

- (UICollectionViewLayoutAttributes *)finalLayoutAttributesForDisappearingItemAtIndexPath:(NSIndexPath *)itemIndexPath {
    return [self layoutAttributesForItemAtIndexPath:itemIndexPath];
}

¿Por qué se llama a los métodos en un cambio de límites porque la documentación no parece sugerir que lo hagan? La documentación parece indicar que se los llama en relación con la inserción y eliminación de elementos de la vista de colección.

¿Hay una mejor manera de deshabilitar el fundido cruzado durante la rotación?

Notas:

losinitialLayoutAttributesForAppearingItemAtIndexPath: La documentación indica que por defecto el método devuelvenil pero llama asuper valores no nulos devueltos.Establecí puntos de ruptura simbólicos en los métodos UICollectionViewdeleteItemsAtIndexPaths:, moveItemAtIndexPath:toIndexPath: yinsertItemsAtIndexPaths: y ninguno de ellos es golpeado durante la rotación.

Respuestas a la pregunta(1)

Su respuesta a la pregunta