是否可以使两个集合视图同步滚动,如果可以,如何?
我有这个类,包含两个collectionviews-一个带有日期,另一个包含一个tableview,其元素与第一个collectionview的日期匹配。当我滚动日期或元素时,我希望它们彼此跟随。
这是一些代码,到目前为止我已经尝试过,但没有任何运气:
我将 ScrollViewDelegate 添加到我的课程中,并尝试了这种委托方法:
func scrollViewDidScroll(scrollView: UIScrollView) {
if scrollView.isEqual(dayCollectionView) {
var offset = contentCollectionView.contentOffset
offset.x = dayCollectionView.contentOffset.x
contentCollectionView.setContentOffset(offset, animated: true)
} else {
var offset = dayCollectionView.contentOffset
offset.x = contentCollectionView.contentOffset.x
dayCollectionView.setContentOffset(offset, animated: true)
}
}
这种方法在某种程度上起作用,但是当它们第一次开始滚动时,滚动视图只是在思考,并且似乎无法停止滚动。
我也试过这个:
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
if scrollView.isEqual(dayCollectionView) {
// Days
for cell in self.dayCollectionView.visibleCells() {
if let indexPath = dayCollectionView.indexPathForCell(cell) {
contentCollectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: .None, animated: true)
}
}
} else {
// Classes
for cell in self.contentCollectionView.visibleCells() {
if let indexPath = contentCollectionView.indexPathForCell(cell) {
dayCollectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: .None, animated: true)
}
}
}
}
这是迄今为止最好的解决方案 - 但它仍然不是我想要的 - 这个滚动,当另一个集合视图完成滚动时..但我希望它们同步滚动:-)
有什么建议么?