嗨,我一直在与这个问题作斗争一段时间,无法解决。
我想做的是,按下collectionview单元格内的一个按钮,然后执行到下一个单元格的转换。
这是我想在collectionview控制器类内部调用的函数:
func done(){
let scrollIndex: NSIndexPath = NSIndexPath(item: 1, section: 0)// NSIndexPath(forItem: 0, inSection: 0)
CollectionViewet.scrollToItem(at: scrollIndex as IndexPath, at: .centeredHorizontally, animated: true)
}
发生的事情是,当我从collectionview控制器调用一个函数时,它给了我
在展开可选值时意外发现nil
我做错了什么?
答案 0 :(得分:1)
UICollectionViewController
默认具有一个名为collectionView
的子视图,您可以使用该子视图滚动到某个项目
因此,如果您正确地覆盖了数据源委托方法,则应该可以如下滚动
func done() {
let numberOfRows = collectionView?.numberOfItems(inSection: 0) ?? 0
guard numberOfRows > 1 else { return }
let indexPath = IndexPath(row: 1, section: 0)
collectionView?.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
}
我添加了guard
行,以防止由于某种原因在数据为空的情况下使应用程序崩溃。