iOS 7: mantener los elementos mostrados en el área de visualización después de la rotación de UICollectionView

Estoy usando unUICollectionView con desplazamiento horizontal (Diseño =UICollectionViewFlowLayout) Después de la rotación, adapto el desplazamiento de contenido para que se muestren los mismos elementos antes de la rotación. En la rotación, el ancho de los elementos cambia, porque siempre hay siete elementos en la pantalla. Mi enfoque actual funciona para iOS 8, pero no para iOS 7.

En iOS 7layoutAttributesForItemAtIndexPath siempre devuelve la misma posición X independientemente de la orientación. Por lo tanto, parece que algún marco no está correctamente adaptado. El cálculo del tamaño de los artículos parece ser correcto, ya que cambian en consecuencia.

Este es mi código:

Mi controlador de vista principal:

public override void DidRotate (UIInterfaceOrientation fromInterfaceOrientation)
{
    base.DidRotate (fromInterfaceOrientation);
    myProblematicCollectionView.invalidateLayout ();
}

El método desde la vista de colección:

public void invalidateLayout(){
    Layout.InvalidateLayout ();
    UICollectionViewLayoutAttributes layoutAttributesForItem = CollectionView.GetLayoutAttributesForItem (NSIndexPath.FromItemSection (0, CurrentVisibleSection));
    CollectionView.SetContentOffset (new CGPoint (layoutAttributesForItem.Frame.X, 0), false);      
}

El código está en C # pero no debería molestarte. Puede obtener soluciones de post corse en Objective-C o Swift.

Sección CurrentVisible es la sección con los siete elementos. Siempre está actualizado. CuandoGetLayoutAttributesForItem olayoutAttributesForItemAtIndexPath se llama, elGetSizeForItem ocollectionView:layout:sizeForItemAtIndexPath: se llama antes de establecer el desplazamiento de contenido.

¿Alguien tiene idea de por qué siempre obtengo el mismo atributo de diseño independientemente de la orientación?

Editar:

Si yo usoreloadData antes de llamarlayoutAttributesForItemAtIndexPath Tengo el tamaño correcto. ¿Necesito esto después?invalidateLayout?

Lo que tampoco entiendo es que la vista de colección tiene el tamaño correcto (el ancho del marco es correcto).

Respuestas a la pregunta(0)

Su respuesta a la pregunta