Центр первого UICollectionViewCell в UICollectionView - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть UICollectionView, который может иметь одну или две ячейки.

Могу ли я горизонтально центрировать первую ячейку, а на panLeft центрировать вторую ячейку также - UICollectionView чья ширина соответствует размеру экрана / вида и пропорциональной настройке ячейки?

Из ссылок, которые я видел, я считаю, что мне нужно использовать метод UICollectionViewDelegateFlowLayout insetForSectionAt, но яЯ не могу установить его точно по центру по какой-то причине, а также, когда это только одна ячейка, я считаю, что вставка заставляет UICollectionView становиться прокручиваемым, потому что было создано достаточно места ..

Illustration 1st two is an example with 2 cells, last is example with 1 cell

1 Ответ

0 голосов
/ 27 сентября 2018

Чтобы сделать представление ячейки центром коллекции, ваш контроллер должен подтвердить протокол UICollectionViewDelegateFlowLayout.Используйте приведенный ниже код для центрирования ячеек:

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize {
    return CGSize(width: collectionView.frame.width * 0.7, height: 300)
}

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
    let width = collectionView.frame.width
    let margin = width * 0.3
    return UIEdgeInsets(top: 10, left: margin / 2, bottom: 10, right: margin / 2)
}

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

func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat {
   return collectionView.frame.width * 0.3 / 2
}

Если вы вернете 1 или 2 в методе numberOfItemsInSection, он отлично работает.

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