簡體   English   中英

在Swift中將滾動與兩個集合視圖同步?

[英]Synchronize scrolling with two collection views in Swift?

有沒有一種做法可以滾動帶有單元格的集合視圖,並根據其內容偏移量來滾動另一個集合視圖?

我有一個具有兩個單元格並水平滾動的主集合視圖。 然后,我有了第二個集合視圖,其中的單元格可以垂直滾動。 發生的情況是,當我向上滾動然后水平滾動到第二個垂直簡歷時,它與第一個垂直簡歷沒有同步。

我在垂直滾動的集合視圖(不是主要視圖,因為它是水平滾動)中覆蓋了scrollViewDidScroll,但是沒有用(**表示不能發揮作用的部分)。

var didScrollPastProfileView: Bool = false

func scrollViewDidScroll(scrollView: UIScrollView) {
    let collectionViewDictionary = ["scrollView": self.collectionView]
    NSNotificationCenter.defaultCenter().postNotificationName("cvDidScroll", object: nil, userInfo: collectionViewDictionary)

if scrollView.contentOffset.y > 250 {

    **self.didScrollPastProfileView = true
    if self.didScrollPastProfileView {
       let previousContentOffset = scrollView.contentOffset.y
       scrollView.contentOffset.y = previousContentOffset
    }**

    } else if scrollView.contentOffset.y < 250 {

        **let previousContentOffset = scrollView.contentOffset.y
        scrollView.contentOffset.y = previousContentOffset
        self.didScrollPastProfileView = false**
    }

}

這是一個視覺效果:

在此處輸入圖片說明

請注意,當我滾動到第二個單元格時上方有空間嗎? 我希望該垂直滾動視圖遵循第一個。 有什么建議么?

編輯:在第一個單元格中滾動時,我嘗試訪問水平集合視圖的第二個單元格;在第一個單元格中向下滾動時,我嘗試更改contentOffSet.y,但出現EXC_BAD_ACCESS錯誤。

if scrollView.contentOffset.y <= 250.0 {
        let groupsPosts = childViewControllerForPosts.collectionView(childViewControllerForPosts.collectionView!, cellForItemAtIndexPath: NSIndexPath(forItem: 1, inSection: 0)) as! FeedCell
        groupsPosts.collectionView.contentOffset.y =  -scrollView.contentOffset.y

        self.topVerticalConstraint?.constant = -scrollView.contentOffset.y

當滾動到collectionViewB時,如果將其animatedfalse ,則可以執行類似的操作,以使其看起來已同步。

let indexPath = collectionViewA.indexPathsForVisibleItems().first
self.collectionViewB.scrollToItemAtIndexPath(indexPath, atScrollPosition: UICollectionViewScrollPosition.Top, animated: false) 

不完全確定如何設置這兩個集合。 如果您無權訪問collectionViewA則可能必須將當前的indexPath保存到變量並將其傳遞。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM