У меня есть контроллер CollectionView с макетом заказных 2 колонок:Swift: пейджинг на экране не работает для представления коллекции макета два столбца
class CVLayout: UICollectionViewFlowLayout {
override init() {
super.init()
setupLayout()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
setupLayout()
}
override var itemSize: CGSize {
set {
}
get {
let numberOfColumns: CGFloat = 2
let itemWidth = (self.collectionView!.frame.width - (numberOfColumns - 1))/numberOfColumns
return CGSize(width: itemWidth, height: itemWidth)
}
}
func setupLayout() {
minimumInteritemSpacing = 1
minimumLineSpacing = 1
scrollDirection = .horizontal
}
}
В моем контроллере я установил
class ViewController: UICollectionViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
collectionView?.isScrollEnabled = true
collectionView?.isPagingEnabled = true
}
У меня есть 7 элементов, на экране отображается 6 элементов, и я ожидаю увидеть один элемент на следующей странице, но вместо этого я вижу 4 (3 на предыдущей странице) Я попытался сыграть с количество разделов и элементов в разделе, но это не помогает. То, что я нашел из других тем, заключается в том, что оповещение по умолчанию должно выполняться по экрану, а не по ячейке (в моем случае столбцу). Что я делаю не так?
Вот что я искал! Я немного изменил код (вычисление количества страниц). И мне также пришлось вычитать высоту навигационного бара, потому что в противном случае мой просмотр коллекции подпрыгивал на свитке. Благодаря! –