0

您将如何使用 UICollectionView 实现 7x7 网格?这个网格在每个单元格之间没有空格,当它旋转时,单元格会简单地调整大小以适应屏幕,所以无论如何它总是 7x7。

我已经完成了以下类,一个 ViewController、一个 Cell 类、一个 CollectionViewLayout 类。

我最初的想法是我必须在 CollectionViewLayout 类中执行此操作,但我应该针对哪些方法来执行此操作?

4

1 回答 1

0

除了调整数据源方法以返回 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.01for the division 而不是7.0.

于 2013-07-27T09:44:43.030 回答