UICollectionView 与两个 UICollectionViewFlowLayout
UICollectionView with two UICollectionViewFlowLayout
我正在 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、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