【发布时间】:2017-03-02 13:59:06
【问题描述】:
是否可以让两个collectionviews同步滚动,如果可以,怎么做?
我有这个类,包含两个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)
}
}
}
}
这是迄今为止最好的解决方案 - 但它仍然不是我想要的 - 这个滚动,当另一个集合视图完成滚动时。但我希望它们同步滚动:-)
有什么建议吗?
【问题讨论】:
标签: ios swift uiscrollview uicollectionview scroll-paging