diff --git a/CardsCollectionViewLayout.swift b/CardsCollectionViewLayout.swift index d82d4c8..b7b8295 100644 --- a/CardsCollectionViewLayout.swift +++ b/CardsCollectionViewLayout.swift @@ -50,7 +50,7 @@ open class CardsCollectionViewLayout: UICollectionViewLayout { override open func layoutAttributesForElements(in rect: CGRect) -> [UICollectionViewLayoutAttributes]? { let totalItemsCount = collectionView.numberOfItems(inSection: 0) - let minVisibleIndex = max(Int(collectionView.contentOffset.x) / Int(collectionView.bounds.width), 0) + var minVisibleIndex = max(Int(collectionView.contentOffset.x) / Int(collectionView.bounds.width), 0) let maxVisibleIndex = min(minVisibleIndex + maximumVisibleItems, totalItemsCount) let contentCenterX = collectionView.contentOffset.x + (collectionView.bounds.width / 2.0) @@ -59,6 +59,11 @@ open class CardsCollectionViewLayout: UICollectionViewLayout { let percentageDeltaOffset = CGFloat(deltaOffset) / collectionView.bounds.width + // ToDO: fix crash + if minVisibleIndex > totalItemsCount { + minVisibleIndex = totalItemsCount + } + let visibleIndices = stride(from: minVisibleIndex, to: maxVisibleIndex, by: 1) let attributes: [UICollectionViewLayoutAttributes] = visibleIndices.map { index in