[英]UICollectionView - Scrolling to first cell
我正在使用UICollectionView,我需要在單擊按鈕后滾動到第一個單元格。
該按鈕位於我的集合視圖中的(大)標題部分...當點擊它時,我需要滾動到位於此按鈕下方的第一個單元格。
我創建了這個按鈕的動作,但我不知道如何滾動到第一個UICollectionViewCell。
有人能幫我嗎?
使用此委托方法,將indexPath設置在第一個位置:
迅速
self.collectionView?.scrollToItemAtIndexPath(NSIndexPath(forItem: 0, inSection: 0),
atScrollPosition: .Top,
animated: true)
斯威夫特3
self.collectionView?.scrollToItem(at: IndexPath(row: 0, section: 0),
at: .top,
animated: true)
Objective-C的
[self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:0 inSection:0]
atScrollPosition:UICollectionViewScrollPositionTop
animated:YES];
如果要滾動並停在其他位置,請更改UICollectionViewScrollPositionTop
可以使用UIScrollView相關屬性
collectionView.contentOffset.x = 0
您可以將此用於Objective-C
[self.restaurantCollectionView setContentOffset:CGPointZero animated:YES];
以下解決方案對我來說很好:
UIView.animate(withDuration: 0.5, animations: {
self.collectionView?.contentOffset.x = 0
})
它滾動到第一個項目,也可以看到contentInset。
默認CollectionView Delgeate ...
- (void)scrollToItemAtIndexPath:(NSIndexPath *)indexPath atScrollPosition:(UICollectionViewScrollPosition)scrollPosition animated:(BOOL)animated;
if let indexPath = self.collectionView?.indexPathForItem(at: CGPoint(x: 0, y: 0)) {
self.collectionView?.scrollToItem(at: indexPath, at: .top, animated: false)
}
scrollView.setContentOffset(CGPoint(x: 0.0, y: 0.0), animated: true)
我發現可以在所有設備上可靠地工作並正確處理iPhone X風格的安全區域。
let top = CGPoint(x: collectionView.contentOffset.x,
y: collectionView.adjustedContentInset.top)
collectionView.setContentOffset(top, animated: false)
(這會垂直滾動到頂部,但如果您願意,可以輕松滾動到左上角。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.