CollectionViewControllerが1つあり、その中に10個のセルがあります。
しかし、アプリを実行すると、下部にセルが表示されますが、viewDidLoadの上部のセルから表示したいと思います。
いろいろ試してみましたがうまくいきませんでした。
それを修正するには?
コレクションビューを再読み込みした後に、この行を追加します。
[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:NO];
編集:
ここでもう1つポイントを追加したいのは、collectionViewデータソースにZERO要素があるか、それがnil
の場合、上記のコードは機能せず、おそらくアプリがクラッシュすることです。
データソースが利用可能かどうかを確認する条件を記述してください!
if (self.dataArray.count > 0) {
[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:NO];
}
ここで、dataArray
はデータソースです。
Swift 3:reloadData()の後
self.collectionView.setContentOffset(CGPoint(x:0,y:0), animated: true)
コレクションビューを再読み込みした後、次のコードを追加します。
スウィフト
yourCollectionView.setContentOffset(CGPoint.zero, animated: true)
objective-c
[yourCollectionView setContentOffset:CGPointZero animated:YES];
その仕事はうまく…….
collectionView.setContentOffset(.zero, animated: false)
アニメーションオプションをfalseにします。コレクションビューアニメーションプロセス中にビューアニメーションが実行されている可能性があります。
collectionView.scrollToItem(at: indexPath, at: .top, animated: false)
これをお試し下さい
[self.yourcollectionview scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:NO];