Итак, в основном у меня есть макет представления коллекции, который выглядит следующим образом:
, который является изображением 3 на строку, которое очень близко друг к другу, как Instagram. Проблема здесь в том, что когда я перехожу на ipad или меньший телефон, например iphone, раскладка искажается. Вот как это выглядит на ipad
Код макета представления коллекции:
func callCustomFlowLayout(collectionView: UICollectionView) {
let flow = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
let itemSpacing: CGFloat = 1
let itemsInOneLine: CGFloat = 3
flow.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)
let width = UIScreen.main.bounds.size.width - itemSpacing * CGFloat(itemsInOneLine - 1) //collectionView.frame.width is the same as UIScreen.main.bounds.size.width here.
flow.itemSize = CGSize(width: floor(width/itemsInOneLine), height: width/itemsInOneLine)
flow.minimumInteritemSpacing = 1
flow.minimumLineSpacing = 1
}
Спасибо за любую помощь в будущем. Я просто хочу, чтобы это было 3 изображения в строках и настройка размера изображения в зависимости от размера устройства.
Вот мой код компоновки
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
let cellsAcross: CGFloat = 3
let spaceBetweenCells: CGFloat = 1
let dim = (collectionView.bounds.width - (cellsAcross - 1) * spaceBetweenCells) / cellsAcross
return CGSize(width: dim, height: dim)
}