我试图将集合视图中的列数设置为3,无论设备如何。 我在viewDidLoad方法中使用此代码:
let width = CGRectGetWidth(self.collectionView.frame)/3.0
let layout = self.collectionView.collectionViewLayout as! UICollectionViewFlowLayout
layout.itemSize = CGSizeMake(width, width)
layout.minimumInteritemSpacing = 0
layout.sectionInset = UIEdgeInsetsZero
layout.scrollDirection = UICollectionViewScrollDirection.Vertical
print("width:\(width), collectionViewWidth:\(CGRectGetWidth(self.collectionView!.frame)), mainViewWidth:\(CGRectGetWidth(self.view.frame))")
我总是只有一列。 print方法返回一些有用的调试信息。他们陈述如下:
宽度:186.666666666667,
collectionViewWidth:560.0,
mainViewWidth:320.0
发生了什么事? collectionViewWidth如何比main主要大?设置恒定列数的正确方法是什么?我在Interface Builder中使用约束指定了collectionView的大小,它应该小于mainView。