Size: a a a

2020 November 07

E

Eddie in SwiftBook
Алмаз ®
Попробуй
let size = collectionView.frame.width - totalSpace

let width = size / CGFloat(noOfCellsInRow)

return CGSize(width: width, height: width)
не помогло, тоже самое поведение ((
источник

А

Алмаз ® in SwiftBook
Eddie
не помогло, тоже самое поведение ((
А ты где коллекцию создавал ? Кодом ?
источник

E

Eddie in SwiftBook
Алмаз ®
А ты где коллекцию создавал ? Кодом ?
в сториборде создал, и контроллер наследую от UICollectionViewController
источник

E

Eddie in SwiftBook
Евгений Ковалевский
Предпоследняя строка. Size ,она походу у тебя меняется в момент прокрутки
вроде не меняется, этот же метод раз вызывается для всех айтемов
источник

А

Алмаз ® in SwiftBook
Eddie
в сториборде создал, и контроллер наследую от UICollectionViewController
покажи скрин атрибут инспектор в сториборде для коллекйии
источник

А

Алмаз ® in SwiftBook
а правой шторке
источник

_s

_ sklv in SwiftBook
Подскажите, нету всплывающего окна чтобы установить связь
источник

AA

A A in SwiftBook
Eddie
ребят, не пойму, почему меняется кол-во айтемов в строке? указал что должно быть 3

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

       
let noOfCellsInRow = 3

       
let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout

       
let totalSpace = flowLayout.sectionInset.left
           + flowLayout.sectionInset.right
           + (flowLayout.minimumInteritemSpacing * CGFloat(noOfCellsInRow - 1))

       
let size = Int((collectionView.bounds.width - totalSpace) / CGFloat(noOfCellsInRow))

       
return CGSize(width: size, height: size)
   }
Блин принтуй просто spacing и inset там же. Что-то из них меняется в последний момент когда в коллекции в одной строке не 3 элемента, а 1.
источник

E

Eddie in SwiftBook
Алмаз ®
покажи скрин атрибут инспектор в сториборде для коллекйии
источник

AA

A A in SwiftBook
Eddie
ребят, не пойму, почему меняется кол-во айтемов в строке? указал что должно быть 3

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

       
let noOfCellsInRow = 3

       
let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout

       
let totalSpace = flowLayout.sectionInset.left
           + flowLayout.sectionInset.right
           + (flowLayout.minimumInteritemSpacing * CGFloat(noOfCellsInRow - 1))

       
let size = Int((collectionView.bounds.width - totalSpace) / CGFloat(noOfCellsInRow))

       
return CGSize(width: size, height: size)
   }
Проследи что меняется когда 1 item в строчке , и задай строго layout и все
источник

AA

A A in SwiftBook
Сейчас будет мало смысла если тебе кто-то просто скажет что тебе нужно поменять. Нужно самому разобраться, принтуй просто те значения на которых ты строишь свой size , какое-то из них ведет себя динамически в том момент когда 1 item в строчке.
источник

AA

A A in SwiftBook
Принтуй их flowLayout.sectionInset.left
           flowLayout.sectionInset.right
           flowLayout.minimumInteritemSpacing

И когда уже коллекция будет в самом низу просто в консоли смотри что меняется и поймешь в чем дело. И это свойство задавай строго
источник

А

Алмаз ® in SwiftBook
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

       let noOfCellsInRow = 3
let spasing:CGFloat = 5

       let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout

       let totalSpace = flowLayout.sectionInset.left
           + flowLayout.sectionInset.right
           + (spasing * CGFloat(noOfCellsInRow - 1))

       let size = collectionView.frame.width - totalSpace

let width = size / CGFloat(noOfCellsInRow)

return CGSize(width: width, height: width)
   }
источник

А

Алмаз ® in SwiftBook
так попоробуй.
источник

А

Алмаз ® in SwiftBook
в сториборде сайз инспекторе выстави все по нулям или по краям по 5 что б было ровно
источник

А

Алмаз ® in SwiftBook
min spasing. должно норм сработать
источник

А

Алмаз ® in SwiftBook
я бы на твоем месте в сториборде сделал бы min Spasing for cells = 0. у секции добавил бы по краям сколько тебе нужно отступов. и в классе чисто регулировал бы кодом.
источник

E

Eddie in SwiftBook
Алмаз ®
я бы на твоем месте в сториборде сделал бы min Spasing for cells = 0. у секции добавил бы по краям сколько тебе нужно отступов. и в классе чисто регулировал бы кодом.
источник

E

Eddie in SwiftBook
Алмаз ®
func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {

       let noOfCellsInRow = 3
let spasing:CGFloat = 5

       let flowLayout = collectionViewLayout as! UICollectionViewFlowLayout

       let totalSpace = flowLayout.sectionInset.left
           + flowLayout.sectionInset.right
           + (spasing * CGFloat(noOfCellsInRow - 1))

       let size = collectionView.frame.width - totalSpace

let width = size / CGFloat(noOfCellsInRow)

return CGSize(width: width, height: width)
   }
не помогло, прикол в том что это даже зависит не от скролла. когда первый раз отрываю экран с колекшином то 3 айтема в строке, закрыл - открыл экран - показывает 2
еще подозреваю что загрузка картинок идет, и догружает больше размер
источник

А

Алмаз ® in SwiftBook
Поменяй на авто
источник