The waterfall (i.e., Pinterest-like) layout for UICollectionView.
pod 'CHTCollectionViewWaterfallLayout'to your Podfile.
pod 'CHTCollectionViewWaterfallLayout/Swift'is ready for you.
github chiahsien/CHTCollectionViewWaterfallLayoutto your Cartfile.
dependenciesvalue of your
dependencies: [ .package(url: "https://github.com/chiahsien/CHTCollectionViewWaterfallLayout.git", from: "0.9.8") ]
CHTCollectionViewWaterfallLayout.swiftto your project.
Read the demo codes and
CHTCollectionViewWaterfallLayout.hheader file for more information.
Below lists the properties for you to customize the layout. Although they have default values, I strongly recommend you to set up at least the
columnCountproperty to suit your needs. The
itemRenderDirectionproperty is an enum which decides the order in which your items will be rendered in subsequent rows. For eg. Left-Right | Right-Left | Shortest column filling up first.
@property (nonatomic, assign) NSInteger columnCount; @property (nonatomic, assign) CGFloat minimumColumnSpacing; @property (nonatomic, assign) CGFloat minimumInteritemSpacing; @property (nonatomic, assign) CGFloat headerHeight; @property (nonatomic, assign) CGFloat footerHeight; @property (nonatomic, assign) UIEdgeInsets sectionInset; @property (nonatomic, assign) ItemRenderDirection itemRenderDirection;
Your collection view's delegate (which often is your view controller) must conforms to
CHTCollectionViewDelegateWaterfallLayoutprotocol and implements the required method, all you need to do is return the original size of the item:
- (CGSize)collectionView:(UICollectionView *)collectionView layout:(UICollectionViewLayout *)collectionViewLayout sizeForItemAtIndexPath:(NSIndexPath *)indexPath;
If you need to support iOS 4.x/5.x and you have installed PSTCollectionView, then you NEED to modify some codes.
Quoted from PSTCollectionView README file:
If you want to have PSTCollectionView on iOS4.3/5.x and UICollectionView on iOS6, use PSUICollectionView (basically add PS on any UICollectionView* class to get auto-support for older iOS versions) If you always want to use PSTCollectionView, use PSTCollectionView as class names. (replace the UI with PST)
Please let me know if your app is using this library. I'm glad to put your app on the list :-)
CHTCollectionViewWaterfallLayout is available under the MIT license. See the LICENSE file for more info.
Refer to the Releases page.