您将如何使用 UICollectionView 实现 7x7 网格?这个网格在每个单元格之间没有空格,当它旋转时,单元格会简单地调整大小以适应屏幕,所以无论如何它总是 7x7。
我已经完成了以下类,一个 ViewController、一个 Cell 类、一个 CollectionViewLayout 类。
我最初的想法是我必须在 CollectionViewLayout 类中执行此操作,但我应该针对哪些方法来执行此操作?
您将如何使用 UICollectionView 实现 7x7 网格?这个网格在每个单元格之间没有空格,当它旋转时,单元格会简单地调整大小以适应屏幕,所以无论如何它总是 7x7。
我已经完成了以下类,一个 ViewController、一个 Cell 类、一个 CollectionViewLayout 类。
我最初的想法是我必须在 CollectionViewLayout 类中执行此操作,但我应该针对哪些方法来执行此操作?
除了调整数据源方法以返回 7 个部分和每部分 7 行之外,您还必须让您的视图控制器符合UICollectionViewDelegateFlowLayout
协议。
假设您不需要空格(已将最小间距设置为 0),您可以使用此方法来调整单元格的大小:
-(CGSize)collectionView:(UICollectionView *)collectionView
layout:(UICollectionViewLayout *)collectionViewLayout
sizeForItemAtIndexPath:(NSIndexPath *)indexPath {
return CGSizeMake(self.collectionView.bounds.size.width/7.0,
self.collectionView.bounds.size.height/7.0);
}
实际上,要完成这项工作,您还需要进行 2 次调整。首先,您应该对界面方向做出反应,如下所示:
-(void)didRotateFromInterfaceOrientation:
(UIInterfaceOrientation)fromInterfaceOrientation {
[self.collectionView.collectionViewLayout invalidateLayout];
}
其次,为了确保一个部分不会分成 2 行,您可能必须使用7.01
for the division 而不是7.0
.