Как установить внутренний интервал в ячейке представления коллекции с 2 ячейками на строку? - PullRequest
0 голосов
/ 06 мая 2018

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

enter image description here

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

return CGSize(width: 153, height: 241)

}

//

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {

return UIEdgeInsetsMake(10, 11, 10, 11)

}

//

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {

return 0

}

//

func collectionView(_ collectionView: UICollectionView, layout    collectionViewLayout: UICollectionViewLayout, maximumLineSpacingForSectionAt section: Int) -> CGFloat {

return 0

}

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Если вы довольны размерами ваших ячеек и просто хотите приблизить их, то отрегулируйте вкладыши left и right (2-й и 4-й входы для UIEdgeInsetsMake):

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    return UIEdgeInsetsMake(10, 16, 10, 16)
}
0 голосов
/ 06 мая 2018

Jusr прочитайте комментарий, не забудьте настроить ячейку на let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! UICollectionViewCell

 extension ViewController :UICollectionViewDelegate , UICollectionViewDelegateFlowLayout,UICollectionViewDataSource{
         func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
            return 100 // data source
          }

        func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {

              let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "cell", for: indexPath) as! UICollectionViewCell
               cell.backgroundColor = .red
              return cell
           }

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

            // 3 cell same size in each row space between them 4
            let spaceBetweenCell :CGFloat = 4.0  // if you change this parmters you have to change minimumInteritemSpacingForSectionAt ,
            let screenWidth = UIScreen.main.bounds.size.width - CGFloat(2 * spaceBetweenCell)
            let totalSpace = spaceBetweenCell * 2.0;  // there is 2 between  3 item
            return CGSize(width: (screenWidth - totalSpace)/3, height: (screenWidth-totalSpace)/3)

        }

        func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
            return 4.0 // space between sections
        }

        func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat {
            return 4.0 // space between items in row
        }



    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...