#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. Спасибо за ответ, но второе загруженное мной изображение показывает представление коллекции во втором элементе. Я не прокручивал немного, как кажется на изображении. Итак, что происходит сейчас, когда при прокрутке к другому элементу я не вижу элемент полностью. Я хочу полностью отобразить текущий элемент, а также немного предыдущего элемента и немного следующего элемента, как на первом загруженном изображении