如何使用 swift 重置 UICollectionView 滚动位置?

Posted

技术标签:

【中文标题】如何使用 swift 重置 UICollectionView 滚动位置?【英文标题】:How can I reset UICollectionView scroll position using swift? 【发布时间】:2015-12-23 19:15:04 【问题描述】:

我正在使用带有 UITableViewCells 的 UITableView,其中有一个 UICollectionView。每个 UICollectionView 中的第一项是我不想关注的标题单元格。

func collectionView(collectionView: UICollectionView, canFocusItemAtIndexPath indexPath: NSIndexPath) -> Bool 
        if indexPath.row == 0 
            // TODO: scroll to correct position here
            return false
        
        return true
    

所以我将关注的最左边是标题单元格右侧的第一个单元格(在索引 1 处)。出现的问题是——当向右滚动时,单元格滚动到屏幕外并且我滚动回左侧,因为我无法专注于第一项,标题单元格永远在屏幕外,因为滚动位置没有更新。如何以编程方式更新滚动位置?

【问题讨论】:

【参考方案1】:

添加这一行是有效的。在这种情况下,indexPath 等于第一个单元格的 NSIndexPath。

collectionView.scrollToItemAtIndexPath(indexPath, atScrollPosition: UICollectionViewScrollPosition.Left, animated: true)

【讨论】:

以上是关于如何使用 swift 重置 UICollectionView 滚动位置?的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 中添加子视图时如何阻止动画重置。?

如何使我在 UIAlertController 内的 UITextField 中输入的数据通过 Swift 中的重置持续存在?

暂停和重置游戏 Spritekit / Swift 之间的区别?

Firebase Auth 密码重置 iOS Swift - 更新 Firebase 数据库

使用 Swift 在 Sprite Kit 游戏中重置高分

关于在 Swift 4 中返回 CGFloat 值