如何在UICollectionView中获取Storyboard以支持动态大小的单元格?

Jef*_*ume 4 xcode storyboard ios uicollectionview uicollectionviewcell

我的动态大小的Storyboard中有以下布局:

在此输入图像描述

但是,在运行应用程序时(取决于方向),单元格如下所示:

在此输入图像描述

这是可以预期的,因为先前的单元格具有静态高度和宽度.

但是,我希望单元格根据设备宽度动态调整大小(为此目的,高度可以保持静态).CollectionView本身正确调整大小,因为它固定在其超级视图上,因此如何使用自动布局约束(相对于UICollectionView指定的静态单元格大小)覆盖单元格.

Jef*_*ume 5

最简单的方法似乎是通过我的主View Controller中的委托来覆盖单元格大小:

- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
    float cellWidth = (self.view.frame.size.width / 2) - 35;
    float cellHeight = cellWidth * 190.0f / 270.0f;
    return CGSizeMake(cellWidth, cellHeight);
}
Run Code Online (Sandbox Code Playgroud)

我更喜欢在故事板中拥有尽可能多的显示逻辑,但我认为这是Apple未来改进的空间.