Swift iOS -CollectionПросмотреть, как прокручивать ячейки за пределы экрана - PullRequest
0 голосов
/ 09 июня 2018

У меня есть collectionView с 4 ячейками.Поскольку в представлении коллекции только 4 ячейки, прокрутка больше не будет.

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

Я пытался изменить collectionView.bounds.origin и collectionView.contentSize.height, но ни одна из них не работала, я все еще не мог прокрутить 4 ячейки сscreen.

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

Каков подходящий способ сделать это?

override func viewDidLoad() {
       super.viewDidLoad()

       let layout = UICollectionViewFlowLayout()
       layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)
       layout.scrollDirection = .vertical

       collectionView = UICollectionView(frame: view.frame, collectionViewLayout: layout)
       collectionView.delegate = self
       collectionView.dataSource = self
       collectionView.alwaysBounceVertical = true
       collectionView.backgroundColor = .white
       collectionView.register(MyCell.self, forCellWithReuseIdentifier: myCell)
       view.addSubview(collectionView)
}

func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
       return 4
}

func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
       let cell = collectionView.dequeueReusableCell(withReuseIdentifier: myCell, for: indexPath) as! MyCell
       cell.textLabel.text = "Hello"
       return cell
}

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

1 Ответ

0 голосов
/ 09 июня 2018

Вы можете использовать scrollView contentInset:

collectionView?.contentInset.bottom = collectionView?.frame.height ?? 0
...