ios - UICollectionView 具有两个 UICollectionViewFlowLayout

标签 ios swift uicollectionview 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 添加堆叠卡效果。

enter image description here

请帮助我。

最佳答案

您从错误的角度看待它,如果您使用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/

相关文章:

swift - CollectionView 单元格大小适合标签

ios - 点击时从 UITableViewCell 内的 UICollectionView 推送到新的 UIViewController

ios - SwiftUI - 使用切换开关切换键盘类型(默认/数字)?

ios - 从 iOS TableViewCell Xib 中删除分隔符

ios - 如何在 iOS 中使用 MPMoviePlayerController 播放视频流

ios - 使用快速滑动的 View 创建 pagingmenucontroller

swift - dataTaskWithRequest 可以在新 View Controller 加载之前完成吗?

ios - 导航栏显示在 Storyboard 中但不显示在模拟器中

swift - NSManagedObject更改不会触发objectWillChange

ios - 如何在 Collection View 中给 UILabel 一个闪烁的效果