2017-03-23 7 views
0

選択したアイテムをスクロールして表示したいと思っています。私は以下のように実装しています。しかしそれはクラッシュします。uicollectionviewの読み込み時に選択した項目を設定するには?

2017年3月23日19:52:45.918645 com.CodeZync.Taxi.iOSClient

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

これは私が取得していますエラーです[7936:1702109] ***起因してアプリを終了'NSInvalidArgumentException'、理由: '無効なインデックスパスにスクロールしようとしました:{length = 2、path = 0 - 1}' ***最初のコールスタックをスローします:(0x1d09cdf7 0x1c2ff077)libC++ abi.dylib: NSException型のキャッチされない例外

+0

collectinViewにはoがありませんが、それはあなたの問題です。 selected_indexPathは、構文が整形された適切な書式化された変数ではありませんが、それは美容的なものです。私はこの行を囲むより多くのコードに感謝します。おそらくあなたはあなたのviewDidLoadを投稿することができますか?エラーメッセージも便利です! – Sethmr

+0

いつコレクションをリロードしますか?viewDidLoadまたはWebサービスAPI呼び出しの応答は? – Krunal

答えて

0

したがって、indexPathはまだ表示されません。あなたはcollectionViewに適切なデータを追加したことを確認し、その後、viewDidAppear()場所に続いてcollectionView.reloadData()viewDidLoad()

の内側を行い、あなたのラインともあなたが言ったようにあなたは、セルを選択したい場合は、これを追加します。

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

に電話した後にviewDidAppear(_ animated: Bool)に選択してスクロールすると、アニメーションが表示されます。

バグの理由は、選択を呼び出してクラッシュするようにコレクションビューを空にするということです。

関連する問題