【问题标题】:Why doesn't the UICollectionViewFlowLayout work well?为什么 UICollectionViewFlowLayout 不能正常工作?
【发布时间】:2020-09-03 15:07:14
【问题描述】:

我想使用 FlowLayout 通过以下代码在一行中显示两个 Item:

override func viewDidLoad()
    {
        super.viewDidLoad()
        setupCV()
    }

func setupCV()
    {
        collectionView.delegate = self
        collectionView.dataSource = self
        let width = (view.frame.size.width - 10) / 2
        let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
        layout.itemSize = CGSize(width: width, height: width + 80 )
    }

但是,当我运行该项目时,它会向我显示:

当我调试它时,宽度的返回值是正确的。

我认为collection view的Size设置也是正确的:

我也尝试将布局设置部分放在这个函数中:

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

然而,Xcode 甚至不执行这个函数。

知道发生了什么,我该如何解决这个问题?非常感谢!

【问题讨论】:

    标签: ios swift5 uicollectionviewflowlayout


    【解决方案1】:

    将布局设置回collectionView:

    let layout = UICollectionViewFlowLayout()
    layout.itemSize = CGSize(width: width, height: width + 80)
    collectionView.collectionViewLayout = layout
    

    【讨论】:

    • 谢谢,它有效。但是为什么我的代码不起作用?我已将其转换为 UICollectionViewFlowLayout。
    • 您没有像我一样更改 collectionView 的 itemSize。相反,您正在更改变量的itemSize。从未使用过。
    猜你喜欢
    • 2016-07-16
    • 2019-01-04
    • 2016-10-10
    • 2016-10-24
    • 2017-02-27
    • 2017-07-08
    • 2014-11-23
    • 2021-03-07
    • 2021-01-24
    相关资源
    最近更新 更多