Skip to content

Releases: chiahsien/CHTCollectionViewWaterfallLayout

1.0.1

18 Mar 16:08

Choose a tag to compare

  • Add PrivacyInfo.xcprivacy privacy manifest (declares no tracking, no data collection, no required-reason API usage)
  • Bundle privacy manifest in both SPM targets and CocoaPods
  • Update CocoaPods deprecation notice with trunk shutdown date (December 2, 2026) (https://blog.cocoapods.org/CocoaPods-Specs-Repo/)

1.0.0

14 Mar 15:20

Choose a tag to compare

A major release with a full rewrite of the Swift implementation. The Objective-C implementation is unchanged.

Highlights

  • Swift rewrite — The entire Swift source has been rewritten from scratch to align with the Objective-C reference implementation, following modern Swift conventions.
  • Platform bump — Minimum deployment target is now iOS 13 / tvOS 13.
  • Apple-style documentation — Every public member now has full DocC-compatible documentation comments.

New Features

  • headerInset / footerInset properties — Control margins around section headers and footers independently.
  • minimumContentHeight property — Set a minimum content height for the collection view (useful for hidden headers with no content).
  • Delegate methodsinsetsForHeaderIn:, insetsForFooterIn:, minimumColumnSpacingFor: for per-section customization.

Improvements

  • All property setters now skip invalidateLayout() when the value hasn't changed.
  • Replaced deprecated UIScreen.main.scale with traitCollection.displayScale for pixel-alignment calculations.
  • layoutAttributesForSupplementaryView(ofKind:at:) now accepts both CHTCollectionElementKind* and UICollectionView.elementKindSection* strings.
  • layoutAttributesForElements(in:) deduplicates attributes by index path, preventing potential duplicates.
  • Eliminated all force-unwraps of collectionView! — the layout now returns early safely when collectionView is nil.
  • Union rects optimization now uses a proper union of all rects in each batch, not just the first and last.
  • Demo projects modernized with programmatic UI and UIScene lifecycle (storyboards removed).
  • CI updated to Node.js 24 compatible GitHub Actions.

Breaking Changes

See the migration guide in the README for full details. Summary:

  • Deployment target: iOS 9 → iOS 13, tvOS 9 → tvOS 13.
  • Swift toolchain: swift-tools-version 5.0 → 5.9 (requires Xcode 15+).
  • Supplementary view element kind: Headers/footers now use CHTCollectionElementKindSectionHeader/Footer instead of UICollectionView.elementKindSectionHeader/Footer.
  • Return type: layoutAttributesForSupplementaryView(ofKind:at:) now returns UICollectionViewLayoutAttributes? (optional).
  • Removed: Public delegate property (now private).
  • Removed: All @available(*, unavailable, renamed:) migration shims from 0.9.x.

Note on CocoaPods

CocoaPods is no longer actively maintained. We recommend migrating to Swift Package Manager.

0.9.10

03 Dec 01:50

Choose a tag to compare

  • Fix header path issue in Swift package.
  • Add demo targets that use Swift package.

0.9.9

01 Dec 15:51

Choose a tag to compare

  • Support SPM.
  • Replace Travis CI with GitHub action.
  • Update both ObjC and Swift demo.
  • Re-organize source codes
  • Bump minimum supported iOS version to 9.0.
  • Change Cocoapods default spec from ObjC to Swift.

0.9.7

05 Sep 15:35

Choose a tag to compare

  • Fix a bug that can't show header and footer together. ( #174, #175, #176, #179 )
  • Update demo. ( #173 )

0.9.6

24 May 14:38

Choose a tag to compare

  • Better Swift 3 and Xcode 8.1 support. (#151, #152)
  • Better Carthage support. (#153)
  • etc.

0.9.5

23 Aug 23:38

Choose a tag to compare

  • Public methods and attributes for Swift project (#132)
  • Adding Framework project with shared scheme to support Carthage (#126)

0.9.4

02 May 02:32

Choose a tag to compare

  • Fix Swift build error (#108)
  • Per-section insets (#107)

Minor update

09 Aug 22:58

Choose a tag to compare

  • Fix for issue when layout is rotated (#100)

0.9.1

15 May 02:46

Choose a tag to compare

  • Fix some typo