我正在使用 iOS Swift 开发一个项目。我们如何为一个collectionView分配两种不同的流程布局?在这里,我需要 UICollectionViewCell 看起来像堆栈卡,为此,我使用 CardsCollectionViewLayout(外部 pod 文件)。
myCollectionView.collectionViewLayout = CardsCollectionViewLayout()
并且运行良好。但问题是我无法根据设备宽度调整 UICollectionViewCell 宽度。为此,我需要使用 UICollectionViewDelegateFlowLayout。
func collectionView(_ collectionView: UICollectionView,
layout collectionViewLayout: UICollectionViewLayout,
sizeForItemAt indexPath: IndexPath) -> CGSize {
let nCol = 1
let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout
let totalSpace = flowLayout.sectionInset.left
+ flowLayout.sectionInset.right
+ (flowLayout.minimumInteritemSpacing * CGFloat(nbCol - 1))
let size = Int((collectionView.bounds.width - totalSpace) / CGFloat(nbCol))
return CGSize(width: size, height: 284)
}
但是当我使用CardsCollectionViewLayout作为我的collectionView布局时,我没有在上面的方法中得到回调。
或者
有没有办法用我的 UICollectionViewCell 添加堆叠卡效果。
请帮助我。
最佳答案
您从错误的角度看待它,如果您使用CardsCollectionViewLayout
,您必须使用该布局提供的功能才能更改它。 CardsCollectionViewLayout
中有一个名为 itemSize
的属性,您可以设置该属性来定义卡片的大小:
let layout = CardsCollectionViewLayout()
collectionView.collectionViewLayout = layout
layout.itemSize = CGSize(width: YOUR_WIDTH, height: YOUR_HEIGHT)
collectionView.dataSource = self
collectionView.delegate = self
collectionView.isPagingEnabled = true
collectionView.showsHorizontalScrollIndicator = false
关于ios - UICollectionView 具有两个 UICollectionViewFlowLayout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56748989/