我创建了一个UICollectionView,其中有一个原型单元格。我想要每行2个单元格并在较小的屏幕上运行它,每行一个单元格。 在更大的屏幕上,细胞之间的距离增加。我只是谈论iPhone。
我认为我必须以编程方式设置约束,取屏幕宽度并除以2.我知道如何获取屏幕宽度并将其除以2但我不知道如何以编程方式为单元格提供宽度和高度。
答案 0 :(得分:1)
UICollectionViewDelegateFlowLayout
为此目的定义了一种方法。
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
// return a CGSize
}
示例:强>
class MyViewController : UIViewController, UICollectionViewDelegateFlowLayout {
override func viewDidLoad() {
super.viewDidLoad()
self.collectionView.delegate = self
self.collectionView.dataSource = self
}
// ...
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
return CGSize(width: CGFloat(self.view.frame.size.width / 2), height: self.view.frame.size.height)
}
// ...
}