我目前正在尝试将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)的参数列表'。
我尝试设置为float,然后将float转换为cgfloat,但这也没有用。
有谁知道如何将NSLayoutDimension转换为CGFloat?
非常感谢任何帮助
感谢。
答案 0 :(得分:5)
如果您想要集合视图的宽度和高度,请尝试以下代码:
let width = CGFloat(myCollectionView.frame.width)
let height = CGFloat(myCollectionView.frame.height)