如何设置加载uicollectionview时选择的项目?

时间:2017-03-23 14:19:02

标签: ios swift scroll collectionview nsindexpath

我想设置滚动到视图正在加载的所选项目。我实现如下。但它崩溃了。

self.collectinView.scrollToItemAtIndexPath(self.selected_indexPath, atScrollPosition: UICollectionViewScrollPosition.CenteredHorizontally, animated: true)

这是我得到的错误:

  

2017-03-23 19:52:45.918645 com.CodeZync.Taxi.iOSClient [7936:1702109] ***由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'尝试滚动到无效的索引路径:{ length = 2,path = 0 - 1}'***第一个抛出调用堆栈:(0x1d09cdf7 0x1c2ff077)libc ++ abi.dylib:以NSException类型的未捕获异常终止

1 个答案:

答案 0 :(得分:0)

因此indexPath尚未可见。确保已将适当的数据添加到collectionView中,然后在collectionView.reloadData()

内执行viewDidLoad()

然后在viewDidAppear()放置你的行,如果你想像你说的那样选择单元格,请添加:

self.collectionView.selectItem(at: IndexPath(item: 0, section: 1), animated: true, scrollPosition: UICollectionViewScrollPosition.CenteredHorizontally))

在致电viewDidAppear(_ animated: Bool)后,在super.viewDidAppear(animated)中进行选择和滚动会使动画可见。

您的错误的原因是当您调用选择时集合视图为空,因此它会崩溃。