web-dev-qa-db-ja.com

CollectionViewを上にスクロール

CollectionViewControllerが1つあり、その中に10個のセルがあります。

しかし、アプリを実行すると、下部にセルが表示されますが、viewDidLoadの上部のセルから表示したいと思います。

いろいろ試してみましたがうまくいきませんでした。

それを修正するには?

12
KAR

コレクションビューを再読み込みした後に、この行を追加します。

[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はデータソースです。

11
User511

Swift 3:reloadData()の後

  self.collectionView.setContentOffset(CGPoint(x:0,y:0), animated: true)
20
Lam Nguyen

コレクションビューを再読み込みした後、次のコードを追加します。

スウィフト

yourCollectionView.setContentOffset(CGPoint.zero, animated: true)

objective-c

[yourCollectionView setContentOffset:CGPointZero animated:YES];

3
Vinith

その仕事はうまく…….

collectionView.setContentOffset(.zero, animated: false)
2
CSE 1994

アニメーションオプションをfalseにします。コレクションビューアニメーションプロセス中にビューアニメーションが実行されている可能性があります。

collectionView.scrollToItem(at: indexPath, at: .top, animated: false)
0
erdikanik

これをお試し下さい

[self.yourcollectionview scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionTop animated:NO];
0
Monika Patel