2016-01-18 119 views
4

是否有機會使用UICollectionView滾動到想要的項目。 scrollToItemAtIndexPath並且不是捕獲到項目本身,而是捕獲到項目所屬的頁面? (我得到了分頁功能。)UICollectionView - 滾動到下一頁

乾杯

+0

這是什麼意思的項目的頁面? –

+0

每頁都有固定數量的收集單元嗎? –

+0

是的,該項目的頁面。我有頁面顯示特定的月份(這是一個日曆)。但是(幾乎)每個月都是從不同的日子(星期五,星期一等)開始的,我想滾動到包含當天的部分(月份)。所以,如果我想滾動到(假設現在是2015年12月14日),它會顯示如下:https://imgur.com/TiDWW8X - 這就是爲什麼我要將它記錄到當前頁/節 – Ancinek

回答

4

您需要創建NSIndexPath比滾動到該索引。

//Mark: - Move to cell when view did appear 

overload viewDidAppear() { 


    let scrollIndex: NSIndexPath = NSIndexPath(forItem: dayIndex, inSection: monthSection) 
    if (// Check you are in range of UIcollectionView's count) { 
     //Scroll collectionview according to your requirement i.e UICollectionViewScrollPositionCenteredHorizontally or UICollectionViewScrollPosition.Left 
     self.YourCollectionView.scrollToItemAtIndexPath(scrollIndex, atScrollPosition: UICollectionViewScrollPositionCenteredHorizontally, animated: true) 
    } 
} 
+0

我添加了以上關於該項目的評論 – Ancinek

+0

已更新的答案。 –

+0

但事情是它不會捕捉到頁面。它確實滾動到單元格本身,這很好,但對於位於頁面中心的單元格(部分),我可以看到:imgur.com/TiDWW8X。此外,我不知道如果它很重要,但我不希望在點擊後發生這種情況,我希望它在加載視圖時發生 - 所以我試圖在viewDidAppear中實現此.scrollToItemAtIndexPath – Ancinek

2

我確實使用了offsetContent屬性;

我知道每個所謂的頁面的寬度。

  1. 我寫了一個代碼來獲取indexPath爲當天
  2. 我檢索到的indexPath
  3. 我乘上視圖的寬度的部分,並把它命名的一節「偏移」
  4. 我設置我的UICollectionView.contentOffset.x爲「偏移量」,它工作正常。

我也嘗試過使用.scrollRectToVisible和偏移,而且令人驚訝的工作,但我也想更新的東西,是基於UICollectionView的contentOffset和.scrollRectToVisible似乎沒有更新該屬性 - 它只是在我稍微拖動視圖後才更新。

感謝您的幫助!

+0

你能否顯示你的代碼?我有類似的問題https://stackoverflow.com/questions/45673446/uicollectionview-offscreen-auto-scroll-for-paging – Maulik