如何同步单元格内的UICollectionView的滚动?

时间:2018-08-06 06:03:31

标签: swift uiscrollview uicollectionview

我有一个UICollectionView,看起来像是横向模式下的Apple日历。 每个单元格都有一个嵌入式UICollectionView 我需要每一天都可以垂直滚动,其余的日子也要遵循相同的滚动。

我尝试过的内容

我试图将外部集合嵌入到滚动视图中,并将滚动视图的内容设置为足够大,以使其加载所有内部UICollectionView高度,然后禁用内部滚动,因此外部滚动导致方式。

我尝试过的问题
这会导致外部UICollectionView的水平滚动出现很大的滞后,因为这迫使我在屏幕外部加载许多笔尖。

然后,我尝试像这样对嵌入式UICollectionViews的内部滚动进行同步:

protocol ScrollSyncDelegate {
     func scrolledTo(offset: CGPoint)
}


extension CalendarViewController2: ScrollSyncDelegate {
    func scrolledTo(offset: CGPoint) {
        dayCollectionView.visibleCells.forEach { cell in
            if let dayCell = cell as? DayCollectionViewCell {

                dayCell.streamableDayCollectionView.setContentOffset(offset, animated: false)
                dayCell.daySideBar.setContentOffset(offset, animated: false)
            }

        }
        self.sideHoursCollectionView.setContentOffset(offset, animated: false)

    }

}

和我内心的UICollectionView

    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        if scrollView == self {
            scrollSyncDelegate?.scrolledTo(offset: scrollView.contentOffset)
        }
    }

这导致滚动非常缓慢,根本不会减速。

这怎么能顺利实现?

0 个答案:

没有答案