使用UICollectionView以编程方式实现7x7网格

时间:2013-07-26 14:59:02

标签: cocoa-touch grid uicollectionview

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

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

我最初的想法是我必须在CollectionViewLayout类中执行此操作,但我应该以哪些方法为目标?

1 个答案:

答案 0 :(得分: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];
}

其次,为了确保一个部分不会分成两行,您可能必须使用7.01进行划分,而不是7.0