O layout automático no UICollectionViewCell não está funcionando

Eu tenho um UICollectionView simples com células que têm um único UITextView. O UITextView é restrito às bordas da célula, portanto, eles devem permanecer do mesmo tamanho que o tamanho da célula.

O problema que estou tendo é que, por algum motivo, essas restrições não estão funcionando quando eu especifico o tamanho da célula via collectionView: layout: sizeForItemAtIndexPath :.

Eu tenho o tamanho da célula definido como 320 x 50 no Storyboard. Se eu retornar um tamanho com 2 vezes a altura do tamanho da célula com sizeForItemAtIndexPath:, o UITextView permanecerá a mesma altura, apesar das restrições que eu definir. Estou usando o Xcode 6 GM.

Meu código do controlador de exibição é:

@implementation TestViewController

- (void)viewDidLoad
{
    [super viewDidLoad];

    self.collectionView.delegate = self;
    self.collectionView.dataSource = self;
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    UICollectionViewCell *c = [self.collectionView cellForItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0]];

    NSLog(@"%f", c.frame.size.height);

    UITextView *tv = (UITextView *)[c viewWithTag:9];
    NSLog(@"%f", tv.frame.size.height);

}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
    return 1;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];

    return cell;
}

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
    UICollectionViewFlowLayout *flowLayout = (UICollectionViewFlowLayout *)collectionView.collectionViewLayout;

    CGSize size = flowLayout.itemSize;

    size.height = size.height * 2;

    return size;
}

@end

Esses logs no viewDidAppear: fornecem uma saída de:
100.00000
50.00000
Como você pode ver, a altura do UITextView não muda com a altura da célula.


Aqui está uma captura de tela do storyboard que eu configurei com um UITextView restrito no UICollectionViewCell:

Eu sei que o uso de restrições de layout automático funciona bem com UITableViewCells e redimensionamento dinâmico. Não faço ideia por que não está funcionando neste caso. Alguém tem alguma idéia?

questionAnswers(4)

yourAnswerToTheQuestion