UICollectionView 单元格的自动布局
AutoLayout for UICollectionView Cells
我的应用程序中有一个 uicollectionview,它使用 uiimageview 在小方格中显示相机胶卷(使用 AssetsLibrary)中的照片。我的问题是,它在 iPhone5/5S 上看起来一切正常,但是当 运行 在 iPhone 6 上时,单元格之间的间距很大。问题是:怎么可能我让单元格自行调整大小,以便所有设备上的间距保持不变? (并且细胞反而生长)。
为 UIImageView 设置自动布局以确保 UIImageView 适合单元格并从那里调整单元格大小后
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
int cellWidth = (SCREEN_WIDTH - (3 * PADDING)) / 4;
return CGSizeMake(cellWidth, cellWidth);
}
使您的集合视图控制器遵循 UICollectionViewDelegateFlowLayout 协议并覆盖以下方法。然后,您可以根据视图边界的大小调整单元格的大小。
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
// Calculate size based on your view's bounds here
}
注意:如果您还处理旋转,则必须在设备旋转时使您的集合视图布局无效,以便再次调用此方法并重新计算尺码。
[self.collectionViewLayout invalidateLayout];
我的应用程序中有一个 uicollectionview,它使用 uiimageview 在小方格中显示相机胶卷(使用 AssetsLibrary)中的照片。我的问题是,它在 iPhone5/5S 上看起来一切正常,但是当 运行 在 iPhone 6 上时,单元格之间的间距很大。问题是:怎么可能我让单元格自行调整大小,以便所有设备上的间距保持不变? (并且细胞反而生长)。
为 UIImageView 设置自动布局以确保 UIImageView 适合单元格并从那里调整单元格大小后
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout*)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
int cellWidth = (SCREEN_WIDTH - (3 * PADDING)) / 4;
return CGSizeMake(cellWidth, cellWidth);
}
使您的集合视图控制器遵循 UICollectionViewDelegateFlowLayout 协议并覆盖以下方法。然后,您可以根据视图边界的大小调整单元格的大小。
- (CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath
{
// Calculate size based on your view's bounds here
}
注意:如果您还处理旋转,则必须在设备旋转时使您的集合视图布局无效,以便再次调用此方法并重新计算尺码。
[self.collectionViewLayout invalidateLayout];