我想设置滚动到视图正在加载的所选项目。我实现如下。但它崩溃了。
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类型的未捕获异常终止
答案 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)
中进行选择和滚动会使动画可见。
您的错误的原因是当您调用选择时集合视图为空,因此它会崩溃。