我正在尝试创建一个自动滚动UICollectionView(每个单元格都有一个图像和一个字符串)。使用contentOffset
滚动工作正常,但由于永远不会触发cellForItem
新的/不可见的单元格。我不想使用scrollToItem
... contentOffset
允许缓慢滚动效果。我也不能使用任何需要持续时间的东西,因为我想让它运行直到用户改变视图。这是我正在使用的代码:
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()
。关于如何加载不可见细胞的任何想法?
答案 0 :(得分:0)
将collectionView的宽度约束挂钩为IBOutlet
并在viewDidLayoutSubviews
中执行此操作 self.collectionViewWithCon.constant = numOfCells*cellWidth
编辑:
@objc func autoScrollView() {
self.collectionViewLeadCon.constant -= 1.0
self.collectionViewWithCon.constant += cellWidth
collectionView.layoutIfNeeded()
}