2017-12-27 449 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)