项目作者: regexident

项目描述 :
A tiled waterfal/mosaic UICollectionViewLayout with support for explicit columns.
高级语言: Swift
项目地址: git://github.com/regexident/CollectionViewMultiColumnLayout.git
创建时间: 2017-05-18T14:48:02Z
项目社区:https://github.com/regexident/CollectionViewMultiColumnLayout

开源协议:Mozilla Public License 2.0

下载


CollectionViewMultiColumnLayout

CollectionViewMultiColumnLayout is a UICollectionViewLayout that resembles a tiled waterfall/mosaic layout (as seen all over the web), with support of multiple columns per section and explicitly assigning a section’s items to specific columns:

screencast

Usage

  1. import CollectionViewMultiColumnLayout
  2. class CollectionViewController: UICollectionViewController {
  3. // ...
  4. override func viewDidLoad() {
  5. super.viewDidLoad()
  6. let layout = CollectionViewMultiColumnLayout()
  7. collectionView.setCollectionViewLayout(layout, animated: false)
  8. }
  9. }
  10. extension CollectionViewController: CollectionViewMultiColumnLayoutDataSource {
  11. func collectionView(_ collectionView: UICollectionView, numberOfColumnsInSection section: Int) -> Int {
  12. // ...
  13. }
  14. func collectionView(_ collectionView: UICollectionView, columnForItemAt indexPath: NSIndexPath) -> Int? {
  15. // ...
  16. }
  17. }
  18. extension CollectionViewController: CollectionViewMultiColumnLayoutDelegate {
  19. func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize {
  20. // ...
  21. }
  22. // Optional methods:
  23. func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, heightForHeaderInSection section: Int) -> CGFloat {
  24. // ...
  25. }
  26. func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, heightForFooterInSection section: Int) -> CGFloat {
  27. // ...
  28. }
  29. func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, insetForSection section: Int) -> UIEdgeInsets {
  30. // ...
  31. }
  32. func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, insetForHeaderInSection section: Int) -> UIEdgeInsets {
  33. // ...
  34. }
  35. func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, insetForFooterInSection section: Int) -> UIEdgeInsets {
  36. // ...
  37. }
  38. func collectionView(_ collectionView: UICollectionView, layout: UICollectionViewLayout, minimumInteritemSpacingForSection section: Int) -> CGFloat {
  39. // ...
  40. }
  41. }

Installation

The recommended way to add CollectionViewMultiColumnLayout to your project is via Carthage:

  1. github 'regexident/CollectionViewMultiColumnLayout'

License

CollectionViewMultiColumnLayout is available under the MPL-2 license. See the LICENSE file for more info.