尝试将NSLayoutDimension转换为CGFloat时出错

D-A*_* UK 0 xcode ios uicollectionview swift

我目前正在尝试将NSLayoutDimension转换为CGFloat,以便我可以使我的集合视图符合某个布局.

    let spacing: CGFloat = 3

    let width = CGFloat(myCollectionView.widthAnchor)

    let height = CGFloat(myCollectionView.heightAnchor)


    let itemWidth = width / 3 - spacing
    let itemHeight = height / 3 - spacing

    var itemSize: CGFloat = 0

    if itemWidth >= itemHeight {
        itemSize = itemWidth
    }
    else if itemHeight > itemWidth {
        itemSize = itemHeight
    }

    let layout = UICollectionViewFlowLayout()

    layout.sectionInset = UIEdgeInsetsMake(20, 0, 10, 0)
    layout.itemSize = CGSize(width: itemWidth, height: itemHeight)

    layout.minimumInteritemSpacing = spacing
    layout.minimumLineSpacing = spacing

    myCollectionView.collectionViewLayout = layout
Run Code Online (Sandbox Code Playgroud)

设置宽度和高度给出以下错误:

无法使用类型为'(NSLayoutDimension)'的参数列表调用类型'CGFloat'的初始值设定项.

我已经尝试设置为浮点数,然后将浮点数转换为cgfloat,但这也没有奏效.

有谁知道如何将NSLayoutDimension转换为CGFloat?

任何帮助深表感谢

谢谢.

小智 5

如果您想要集合视图的宽度和高度,请尝试以下代码:

let width = CGFloat(myCollectionView.frame.width)

let height = CGFloat(myCollectionView.frame.height)
Run Code Online (Sandbox Code Playgroud)