Estoy usando Xcode 6 Beta 3, iOS 8 SDK. Construye Target iOS 7.0 usando Swift. Consulte mi problema paso a paso con las capturas de pantalla a continuación.
Tengo un UICollectionView en Storyboard. 1 Prototype UICollectionViewCell que contiene 1 etiqueta en el centro (sin regla de autoresizing). Supongo que el fondo púrpura debía marcar una vista de contenido generada en tiempo de ejecución por la celda. Esa vista se redimensionará correctamente en función de mi UICollectionViewLayoutDelegate eventualmente, pero no en iOS 7. Tenga en cuenta que estoy usando Xcode 6 y el problema solo ocurre en iOS 7.
Cuando construyo la aplicación en iOS 8. Todo está bien.
Nota: Purple es contentView , Blue es mi UIButton con esquina redondeada.
Sin embargo, en iOS 7, todas las subvistas dentro de la celda se reducen repentinamente al marco de (0,0,50,50) y nunca más se ajustan a mi regla de Autoresizing.
Supongo que esto es un error en iOS 8 SDK o Swift o tal vez Xcode.
Actualización 1: ¡ Este problema todavía existe en el Xcode 6.0.1 oficial! La mejor solución es como lo que KoCMoHaBTa sugirió a continuación al establecer el marco en cellForItem de la celda (aunque debe subclasificar su celda). Resultó que esto es una incompatibilidad entre iOS 8 SDK e iOS 7 (verifique la respuesta de ecotax a continuación citada por Apple).
Actualización 2: pegue este código al comienzo de su cellForItem y las cosas deberían estar bien:
/** Xcode 6 on iOS 7 hot fix **/
cell.contentView.frame = cell.bounds;
cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
/** End of Xcode 6 on iOS 7 hot fix **/
contentView
de tamaño con la celda funciona bien para solucionar el problema. Supongo que en iOS 8 Apple cambió algo sobre la forma en que se manejan las vistas de contenido celular cuando se crea en Interface Builder (que de todos modos todavía es un poco un cuadro negro). Pero el hecho de que cambie el comportamiento al apuntar a iOS 7 seguramente es un error.
contentView
bordes a los bordes de la celda.