我已经启用了分页的全屏显示视图:
这是我在代码中进行配置的方式:
let layout = UICollectionViewFlowLayout()
layout.minimumInteritemSpacing = 0.0
layout.minimumLineSpacing = 0.0
layout.itemSize = UIScreen.main.bounds.size
layout.scrollDirection = UICollectionViewScrollDirection.horizontal
layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)
allQuotesCollectionView.collectionViewLayout = layout
在我的情节提要中:
我遇到的问题是首次滚动加载屏幕时,滚动动画中存在错误:
此错误发生后,滚动变得平滑。 我怎样才能解决这个问题?我也使用过Github Framework,但没有帮助。我需要任何可能的解决方案。
感谢您的帮助,非常感谢。
答案 0 :(得分:0)
经过3到4天的艰苦奋战,终于找到了原因:
我的错误在这里:
override func viewDidLayoutSubviews() {
let midIndexPath = IndexPath(row: infiniteSize / 2, section: 0)
allQuotesCollectionView.scrollToItem(at: midIndexPath, at: .centeredHorizontally, animated: false)
}
将这段代码移至viewDidAppear方法后,所有内容开始起作用,并且错误消失了。
所以,我现在的最终代码如下:
override func viewDidAppear(_ animated: Bool) {
let layout = UICollectionViewFlowLayout()
layout.minimumInteritemSpacing = 0.0
layout.minimumLineSpacing = 0.0
layout.itemSize = UIScreen.main.bounds.size
layout.scrollDirection = UICollectionViewScrollDirection.horizontal
layout.sectionInset = UIEdgeInsetsMake(0, 0, 0, 0)
allQuotesCollectionView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0)
allQuotesCollectionView.collectionViewLayout = layout
allQuotesCollectionView.isPagingEnabled = true
let midIndexPath = IndexPath(row: infiniteSize / 2, section: 0)
allQuotesCollectionView.scrollToItem(at: midIndexPath, at: .centeredHorizontally, animated: false)
DispatchQueue.main.asyncAfter(deadline: .now() + 0.25, execute: {
UIView.transition(with: self.view, duration: 1, options: .transitionCrossDissolve, animations: {
self.allQuotesCollectionView.isHidden = false
})
})
}
我猜想您需要在屏幕上加载了分页功能(主要是开始索引)之后设置集合视图。
希望这会在将来对某人有所帮助!