我正在尝试创建一个自动滚动的 UICollectionView (每个单元格都有一个图像和一个字符串)。使用 contentOffset
滚动效果很好,但由于 cellForItem
永远不会触发,因此新的/不可见的单元格永远不会加载。我不想使用 scrollToItem
...contentOffset
允许缓慢滚动效果。我也不能使用任何需要持续时间的东西,因为我希望它运行到用户更改 View 为止。这是我正在使用的代码:
func configAutoScrollTimer() {
signInTimer = Timer.scheduledTimer(timeInterval: 0.03, target: self, selector: #selector(autoScrollView), userInfo: nil, repeats: true)
}
func deconfigAutoScrollTimer() {
signInTimer.invalidate()
scrollX = 0
}
@objc func autoScrollView() {
scrollX += 1
let offsetPoint = CGPoint(x: scrollX, y: 0)
collectionView.contentOffset = offsetPoint
collectionView.layoutIfNeeded()
}
configureAutoSrollTimer()
在 View 加载时调用。关于如何加载不可见单元格有什么想法吗?
最佳答案
将collectionView的宽度约束 Hook 为IBOutlet
并在 viewDidLayoutSubviews 中执行此操作
self.collectionViewWithCon.constant = numOfCells*cellWidth
编辑:
@objc func autoScrollView() {
self.collectionViewLeadCon.constant -= 1.0
self.collectionViewWithCon.constant += cellWidth
collectionView.layoutIfNeeded()
}
关于swift - 在自动滚动 UICollectionView cellForItemAtIndexPath 中,contentOffset 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48233356/