Скройте верхние ячейки CollectionView с анимацией (Swift 4) - PullRequest
0 голосов
/ 22 сентября 2018

Как сделать так, чтобы при прокрутке вниз верхние ячейки не обрезались, как моя, и скрывался с анимацией ?

Мое приложение:

gif

Пример: gif

Я пытался VegaScroll , но не соответствует описанию

1 Ответ

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

Вам нужно отредактировать макет с помощью Delegate, после установки макета как Vega

я добился этого с помощью этого кода.

    //in viewDidLoad  
    let layout1 = VegaScrollFlowLayout()

    collectionView.collectionViewLayout = layout1

А затем с помощью макета CollectionView Delegate

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

    let width = collectionView.frame.width / 3 - 1
    return CGSize(width: width, height: width)
   }

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

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

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

collectionView.collectionViewLayout = layout
layout.minimumLineSpacing = 20
layout.itemSize = CGSize(width: collectionView.frame.width, height: 87)
layout.sectionInset = UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)

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

Или вы можете просто добиться этого, используя этот код в ViewDidLoad.

    let layout1 = VegaScrollFlowLayout()

       collectionView.collectionViewLayout = layout1
        layout1.minimumLineSpacing = 1
        let width =  Col1.frame.width / 3 - 1
        layout1.itemSize = CGSize(width: width , height: 87)
        layout1.sectionInset = UIEdgeInsets(top: 10, left: 0, bottom: 10, right: 0)

End Result

...