swift - 在自动滚动 UICollectionView cellForItemAtIndexPath 中,contentOffset 不触发

标签 swift uicollectionview tvos

我正在尝试创建一个自动滚动的 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/

相关文章:

ios - iOS 9.0 中的 UITextview 字体为零

ios - tvOS - 管理订阅页面

objective-c - 如何为自定义 View 设置 canBecomeFocused

ios - 当我快速滚动时,CollectionViewCell 显示错误的图像

ios - 如何像 Spotify 的播放器一样创建一个居中的 UICollectionView

swift - 如何使用 swift - tvOS 获取 UIcollectionview 单元格中聚焦单元格的 'parent'

ios - Xcode 6.3 更新导致 ide 卡住并需要强制退出

ios - 是什么导致我的 AppDelegate 中的 self 未定义?

ios - 快速获取设备 token

ios - 当 View 当前不可见时更改 Collection View 的滚动位置