UICollectionView Cell Auto Size con AutoLayout iOS 8

Estoy intentando configurar celdas de dimensionamiento automático de iOS 8 en UICollectionViewController :
He creado un layout básico con StoryBoards y he diseñado un UICollectionViewCell allí con una label limitada a los límites de la celda. Luego, uní la label de esa celda a la class de una Celda para poder acceder a ella mediante progtwigción.
Sin especificar unItemSize estimatedItemSize , todo funciona bien (excepto el tamaño automático, por supuesto).

Cuando especifique estimatedItemSize esta manera:

 - (void)viewDidLoad { [super viewDidLoad]; UICollectionViewFlowLayout *layout = (UICollectionViewFlowLayout *)self.collectionViewLayout; layout.estimatedItemSize = CGSizeMake(100.0f, 30.0f); } 

La aplicación se bloquea con estos posts de error:

 the behavior of the UICollectionViewFlowLayout is not defined because: the item width must be less than the width of the UICollectionView minus the section insets left and right values. Please check the values return by the delegate. 

Creo que estoy estableciendo estimatedItemSize en un lugar incorrecto o, si ya tengo un tamaño de elemento especificado configurado en un storyboard, entonces está en conflicto de algún modo con el tamaño estimado.

Respondiendo a una pregunta propia, como descubrí el motivo del problema:
Para que esta característica funcione, UILabel debe tener un ancho menor que el ancho UICollectionView. Incluso si en Storyboard se ve bien, si AutoLayout se está utilizando, el ancho debe estar limitado, por ejemplo, en mi caso hice una restricción less or equal 320 . Sin ella, la label crece en un ancho muy grande pero solo tiene una altura de línea. Con esta restricción aplicada, el ajuste de línea comenzó a funcionar y la label creció en altura en lugar de solo ancho.

    Intereting Posts