2

我有一个collectionView不同的collectionCell,我想根据单元格设置比例/高度/大小。我该怎么做 ?

这是我不同单元格的图像:atitle cell和 2 不同cell image。一个是视图的宽度/ 3,另一个是/ 2。我不能在故事板中使用自动布局约束来做到这一点,所以我需要在代码中做。我正在尝试使用 collectionViewLayout。

集合视图

4

2 回答 2

1

实施

class MyViewController: UIViewController, UICollectionViewDataSource , UICollectionViewDelegate , UICollectionViewFlowLayout

ViewDidLoad

collectionView.delegate = self;
collectionView.datasource = self;

添加流布局的委托

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
    if indexPath.row == 0 || indexPath.row == 1 || indexPath.row == 2{
      return CGSize(self.view.frame.size.width / 3, 100)
     }

  else{
      return CGSize(self.view.frame.size.width / 2, 100)
    }
//  return the size you what
    }
于 2016-12-19T09:53:06.720 回答
0

根据您的要求,您可以这样做

func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
   if (indexPath.row >= 0 && indexPath.row < 3) {
        return CGSize(width: self.view.frame.size.width / 3.15, height: 150)
        // here give size for 3 collectionviewcell in one row . i use 3.5 beacause of i put spacing 10 pix left and right side of collectionview.
   }
   else if (indexPath.row >=3 && indexPath.row < 5){
       return CGSize(width: self.view.frame.size.width / 2.20, height: 150)
        // here give size for 2 collectionviewcell in one row.
   }else{
      return CGSize(width: self.view.frame.size.width / 3.15, height: 150)
   }

}

输出 :

因为他们需要collectionview中的6个单元格

于 2016-12-19T09:46:49.623 回答