Skip to content

Commit de37d0b

Browse files
committed
Add delegate method for minimumColumnSpacing
Fix chiahsien#207
1 parent 88b81c2 commit de37d0b

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

Source/CHTCollectionViewWaterfallLayout.swift

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,10 @@ private func > <T: Comparable>(lhs: T?, rhs: T?) -> Bool {
5353
@objc optional func collectionView(_ collectionView: UICollectionView,
5454
layout collectionViewLayout: UICollectionViewLayout,
5555
columnCountFor section: Int) -> Int
56+
57+
@objc optional func collectionView(_ collectionView: UICollectionView,
58+
layout collectionViewLayout: UICollectionViewLayout,
59+
minimumColumnSpacingFor section: Int) -> CGFloat
5660

5761
@available(*, unavailable, renamed: "collectionView(_:layout:sizeForItemAt:)")
5862
@objc optional func collectionView (_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout,
@@ -205,10 +209,13 @@ public class CHTCollectionViewWaterfallLayout: UICollectionViewLayout {
205209
}
206210

207211
public func itemWidth(inSection section: Int) -> CGFloat {
208-
let columnCount = self.columnCount(forSection: section)
209-
let spaceColumCount = CGFloat(columnCount - 1)
210212
let width = collectionViewContentWidth(ofSection: section)
211-
return floor((width - (spaceColumCount * minimumColumnSpacing)) / CGFloat(columnCount))
213+
214+
let columnCount = self.columnCount(forSection: section)
215+
let spaceColumnCount = CGFloat(columnCount - 1)
216+
let columnSpacing = delegate?.collectionView?(collectionView!, layout: self, minimumColumnSpacingFor: section) ?? minimumColumnSpacing
217+
218+
return floor((width - (spaceColumnCount * columnSpacing)) / CGFloat(columnCount))
212219
}
213220

214221
override public func prepare() {

0 commit comments

Comments
 (0)