2017-12-27 450 views
0

我当前正在尝试将NSLayoutDimension转换为CGFloat,以便我可以使我的集合视图符合特定的布局。尝试将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 

设定的宽度和高度是给的误差:

不能调用初始化为类型“CGFloat的”类型的自变量列表“(NSLayoutDimension)”。

我已经尝试设置为一个浮动,然后将浮动转换为cgfloat,但那也没有奏效。

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

任何帮助非常感谢

谢谢。

+0

什么是你想用自动布局锚呢? – user28434

回答

3

,如果你希望你的集合视图的宽度和高度,尝试下面的代码:

let width = CGFloat(myCollectionView.frame.width) 

let height = CGFloat(myCollectionView.frame.height)