Auto Layout in UICollectionViewCell funktioniert nicht

Ich habe eine einfache UICollectionView mit Zellen, die eine einzige UITextView haben. Die UITextView ist auf die Ränder der Zelle beschränkt, daher sollten sie dieselbe Größe wie die Zellengröße haben.

Das Problem, das ich habe, besteht darin, dass diese Einschränkungen aus irgendeinem Grund nicht funktionieren, wenn ich die Zellengröße über collectionView: layout: sizeForItemAtIndexPath: angebe.

Ich habe die Zellengröße im Storyboard auf 320 x 50 eingestellt. Wenn ich mit sizeForItemAtIndexPath: eine Größe mit der doppelten Höhe der Zellengröße zurückgebe, bleibt die UITextView trotz der von mir festgelegten Einschränkungen auf derselben Höhe. Ich benutze Xcode 6 GM.

Mein View-Controller-Code lautet:

@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

Diese meldet sich bei viewDidAppear an: Gib mir eine Ausgabe von:
100.00000
50.00000
Wie Sie sehen, ändert sich die Höhe von UITextView nicht mit der Zellenhöhe.


Hier ist ein Screenshot des Storyboards, das ich mit einer UITextView-Einschränkung in der UICollectionViewCell eingerichtet habe:

Ich weiß, dass die Verwendung von automatischen Layoutbeschränkungen mit UITableViewCells und dynamischer Größenänderung problemlos funktioniert. Ich habe keine Ahnung, warum es in diesem Fall nicht funktioniert. Hat jemand irgendwelche Ideen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage