gpt4 book ai didi

ios - 我怎样才能为 sizeForItemAt 设置一个 Collection View ?

转载 作者:可可西里 更新时间:2023-11-01 00:21:28 26 4
gpt4 key购买 nike

我有 ViewController,其中有两个 collectionView 但对于一个我想要 isPagingEnabled 用于单元格和另一个 collectionView全帧宽度的 3 项。我怎样才能做到这一点 ?

用于分页的 MenuCollectionView:它工作完美

 func setupMenuCollection(){        
if let flowLayout = menuCollectionView?.collectionViewLayout as? UICollectionViewFlowLayout {
flowLayout.scrollDirection = .horizontal
flowLayout.minimumLineSpacing = 0
}

menuCollectionView?.backgroundColor = UIColor.white
menuCollectionView?.contentInset = UIEdgeInsetsMake(50, 0, 0, 0)
menuCollectionView?.scrollIndicatorInsets = UIEdgeInsetsMake(50, 0, 0, 0)

menuCollectionView?.isPagingEnabled = true

}

它用于 manubarCollectionView :它不起作用,因为这里没有 else 语句。

    func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if manubarCollectionView == collectionView {

return CGSize(width: view.frame.width / 3, height: manubarCollectionView.frame.height)
}

}

最佳答案

很简单,对于第二个 collectionView 单元格大小,添加 else block 并返回 CGSize 或直接返回 CGSizeif block 之后。

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if manubarCollectionView == collectionView {

return CGSize(width: view.frame.width / 3, height: manubarCollectionView.frame.height)
}
else {
//return cell size for menuCollectionView
return collectionView.frame.size
}
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
if manubarCollectionView == collectionView {

return CGSize(width: view.frame.width / 3, height: manubarCollectionView.frame.height)
}

//return cell size for menuCollectionView
return collectionView.frame.size
}

注意:您需要在collectionView的所有dataSourcedelegate方法中放入此类条件,以区分两个 collectionView

关于ios - 我怎样才能为 sizeForItemAt 设置一个 Collection View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41361113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com