নতুন, সম্পাদিত উত্তর:
এটি যোগ করুন viewDidLayoutSubviews
স্যুইফ্ট
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let indexPath = IndexPath(item: 12, section: 0)
self.collectionView.scrollToItem(at: indexPath, at: [.centeredVertically, .centeredHorizontally], animated: true)
}
সাধারণত, .centerVertically
কেস হয়
ObjC
-(void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
NSIndexPath *indexPath = [NSIndexPath indexPathForItem:12 inSection:0];
[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically | UICollectionViewScrollPositionCenteredHorizontally animated:NO];
}
পুরানো আইওএসের জন্য পুরানো উত্তর কাজ করছে
এটি এতে যুক্ত করুন viewWillAppear
:
[self.view layoutIfNeeded];
[self.collectionView scrollToItemAtIndexPath:indexPath atScrollPosition:UICollectionViewScrollPositionCenteredVertically animated:NO];
initialScrollDone
এই পদ্ধতিটি একাধিকবার কল করা হবে এবং আপনি যদি স্ক্রোলটিআইটেমটিটেক্সপথ কল করেন যেহেতু লেনক যেমনটি করেছে তখন আমি একটি পতাকা ব্যবহারের উপর জোর দিয়ে বলব: একাধিকবার সংগ্রহটি রেকর্ড করা হয়েছে বলে মনে হচ্ছে না করা (আইওএস সিমুলেটর আইফোন 5 / আইওএস 8)