使用sizeForItemAt方法禁用其他集合视图

时间:2018-05-03 08:05:32

标签: ios swift uicollectionview

我有2个集合视图,一个集合视图使用sizeForItemAt来更改单元格的大小,而其他集合视图不应该使用该方法。

我的问题是如何禁用/阻止其他集合视图使用sizeForItemAt方法。

2 个答案:

答案 0 :(得分:1)

如果您的目标是识别受sizeForItemAt方法影响的集合视图,则只需使用===运算符即可。

示例:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    if collectionView === firstCollectionView {
        // here it should returns the desired size
        return CGSize(width: ..., height: ...)
    }

    // here it should returns the default size
    return CGSize(width: ..., height: ...)
}

或(较短的版本):

return collectionView === firstCollectionView ? CGSize(width: ..., height: ...) : CGSize(width: ..., height: ...)

答案 1 :(得分:0)

将以下代码放在单元格大小方法

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    //return CGSize.init(width: self.view.frame.width / 3 - 30, height: self.view.frame.width / 3 - 30)
    if collectionView == myfirstCollectionview
    {
        //For FirstCollectionView
        return CGSize.init(width: 90, height: 90)
    }
    else
    {
        //For SeondCollectionView
      return CGSize.init(width: 90, height: 90)
    }
}