Центрируйте представление коллекции при прокрутке с частично видимым предыдущим и следующим элементом

#ios #swift #collectionview #insets

#iOS #swift #collectionview #вставки

Вопрос:

я хочу добиться результата, подобного этому изображению, и это то, что я получаю, когда запускаю представление коллекции (первый элемент): введите описание изображения здесь

Но когда я прокручиваю вставку влево и вправо, кажется, что они больше не соблюдаются, и элемент больше не центрируется, как это:

введите описание изображения здесь

моя часть кода:

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

return  CGSize(width: view.bounds.size.width - 60 , height: 450)
 

}

  func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, insetForSectionAt section: Int) -> UIEdgeInsets {
return UIEdgeInsets(top: 0, left: 30, bottom: 0, right: 30)
 

}

Ответ №1:

Привет, я понял, что вы просите всякий раз, когда представление коллекции прокручивается немного, вам нужно полностью отобразить следующую ячейку.

Для достижения этого в CollectionView будет отображаться ячейка

 func collectionView(_ collectionView: UICollectionView, willDisplay cell: UICollectionViewCell, forItemAt indexPath: IndexPath) {
if !(indexPath.section == 0), !(indexPath.row == 0) {
    let indexPath = IndexPath(item: indexPath.row   1, section: indexPath.section)
        self.collectionView.scrollToItem(at: indexPath, at: .centeredVertically, animated: true)
 }
}
 

перейдите к следующему элементу.

Надеюсь, это может сработать для вас 🙂

Комментарии:

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