在自动滚动UICollectionView cellForItemAtIndexPath不是由contentOffset

时间:2018-01-12 20:10:46

标签: swift uicollectionview tvos

我正在尝试创建一个自动滚动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()。关于如何加载不可见细胞的任何想法?

1 个答案:

答案 0 :(得分:0)

将collectionView的宽度约束挂钩为IBOutlet

并在viewDidLayoutSubviews

中执行此操作
 self.collectionViewWithCon.constant = numOfCells*cellWidth

编辑:

@objc func autoScrollView() {
   self.collectionViewLeadCon.constant -= 1.0
   self.collectionViewWithCon.constant += cellWidth
   collectionView.layoutIfNeeded()
 }