CollectionView Cell Автоматическое изменение размера
Я создал UICollectionView, в котором у меня есть одна ячейка прототипа. Я хочу, чтобы по 2 ячейки на строку, и запуск его на меньшем экране дает мне по одной ячейке на строку. Расстояние между ячейками увеличивается на большом экране. Я говорю только в отношении iPhone.
Я думаю, что я должен установить ограничения программно, взяв ширину экрана и разделив ее на 2. Я знаю, как взять ширину экрана и разделить ее на 2, но я не знаю, как программно задать ширину и высоту для ячейки.
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)
}
// ...
}