簡體   English   中英

在 UICollectionView 中的小單元格上使用左插入進行分頁

[英]Paging with left inset on small cells in UICollectionView

我有一個 UICollectionView 填充了從一個日期到另一個日期的日期。 我已經用 IGListKit 實現了 UICollectionView。 我想在每個單元格上啟用分頁,以便每個單元格在滾動時會落在圓圈的中間。 (如下所示)我嘗試了幾種分頁方法,但這些方法不會直接居中在圓圈中間(如第二張圖片所示)。 發生的事情是,單元格被分頁到左側,我希望有一個 20 的插圖,以便它適合圓圈

在此處輸入圖片說明 在此處輸入圖片說明

為了在視圖首次加載時使當前日期顯示在圓圈的左側,我將語義設置為Force Right-to-Left並且我還有 edgeInsets,它們是:

left: screenWidth-62, right: 20)

單元格的寬度為 42,側面的插圖為 20,因此第一個單元格將位於帶有這些插圖的圓圈中。 所以當視圖第一次加載時,集合視圖看起來像這樣:

在此處輸入圖片說明

我基本上希望每個單元格在滾動時落在這個圓圈內(如果滾動停止)

這是我到目前為止:

func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    if scrollView == self.collectionView {
        var currentCellOffset = self.collectionView.contentOffset
        currentCellOffset.x += (self.collectionView.frame.width / 2) + 20
        if let indexPath = self.collectionView.indexPathForItem(at: currentCellOffset) {
            self.collectionView.scrollToItem(at: indexPath, at: .centeredHorizontally, animated: true)
        }
    }
}

和這個:

collectionView.decelerationRate = UIScrollView.DecelerationRate.fast

有誰知道如何解決這個問題?

謝謝

我創建了一個自定義集合視圖布局,用於按單元而不是屏幕進行分頁

我還概述了一些不同的方法來自定義它與 README 中的示例

在這里查看

如果您對此有任何疑問或需要更多幫助,請告訴我

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM