{"id":18538973,"url":"https://github.com/ramotion/gliding-collection","last_synced_at":"2025-10-03T14:28:22.562Z","repository":{"id":52238197,"uuid":"83802599","full_name":"Ramotion/gliding-collection","owner":"Ramotion","description":":octocat: Gliding Collection is a smooth, flowing, customizable decision for a UICollectionView Swift Controller. iOS library made by @Ramotion","archived":false,"fork":false,"pushed_at":"2020-04-06T07:01:15.000Z","size":28320,"stargazers_count":1523,"open_issues_count":1,"forks_count":129,"subscribers_count":51,"default_branch":"master","last_synced_at":"2025-05-16T00:04:25.632Z","etag":null,"topics":["ios","library","swift"],"latest_commit_sha":null,"homepage":"https://www.ramotion.com/agency/app-development/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ramotion.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-03-03T13:47:23.000Z","updated_at":"2025-04-30T03:37:09.000Z","dependencies_parsed_at":"2022-08-21T03:20:30.919Z","dependency_job_id":null,"html_url":"https://github.com/Ramotion/gliding-collection","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramotion%2Fgliding-collection","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramotion%2Fgliding-collection/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramotion%2Fgliding-collection/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ramotion%2Fgliding-collection/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ramotion","download_url":"https://codeload.github.com/Ramotion/gliding-collection/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254442854,"owners_count":22071878,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ios","library","swift"],"created_at":"2024-11-06T19:45:42.453Z","updated_at":"2025-10-03T14:28:17.529Z","avatar_url":"https://github.com/Ramotion.png","language":"Swift","funding_links":["https://paypal.me/Ramotion"],"categories":[],"sub_categories":[],"readme":"\u003ca href=\"https://www.ramotion.com/agency/app-development/?utm_source=gthb\u0026utm_medium=repo\u0026utm_campaign=gliding-collection\"\u003e\u003cimg src=\"https://github.com/Ramotion/folding-cell/blob/master/header.png\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://github.com/Ramotion/gliding-collection\"\u003e\n\u003cimg align=\"left\" src=\"https://github.com/Ramotion/gliding-collection/blob/master/assets/gliding-collection.gif\" width=\"480\" height=\"360\" /\u003e\u003c/a\u003e\n\n\u003cp\u003e\u003ch1 align=\"left\"\u003eGLIDING COLLECTION\u003c/h1\u003e\u003c/p\u003e\n\n\u003ch4\u003eA smooth, flowing, customizable decision for a UICollectionView Swift Controller\u003c/h4\u003e\n\n\n___\n\n\n\n\u003cp\u003e\u003ch6\u003eWe specialize in the designing and coding of custom UI for Mobile Apps and Websites.\u003c/h6\u003e\n\u003ca href=\"https://www.ramotion.com/agency/app-development/?utm_source=gthb\u0026utm_medium=repo\u0026utm_campaign=gliding-collection\"\u003e\n\u003cimg src=\"https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png\" width=\"187\" height=\"34\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp\u003e\u003ch6\u003eStay tuned for the latest updates:\u003c/h6\u003e\n\u003ca href=\"https://goo.gl/rPFpid\" \u003e\n\u003cimg src=\"https://i.imgur.com/ziSqeSo.png/\" width=\"156\" height=\"28\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003c/br\u003e\n\n[![Twitter](https://img.shields.io/badge/Twitter-@Ramotion-blue.svg?style=flat)](http://twitter.com/Ramotion)\n[![PodPlatform](https://img.shields.io/cocoapods/p/GlidingCollection.svg)](https://cocoapods.org/pods/GlidingCollection)\n[![PodVersion](https://img.shields.io/cocoapods/v/GlidingCollection.svg)](http://cocoapods.org/pods/GlidingCollection)\n[![Documentation](https://cdn.rawgit.com/Ramotion/gliding-collection/master/docs/badge.svg)](https://cdn.rawgit.com/Ramotion/gliding-collection/master/docs/index.html)\n[![Carthage](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Ramotion/gliding-collection)\n[![Codebeat](https://codebeat.co/badges/6a009992-5bf2-4730-aa35-f3b20ce7693d)](https://codebeat.co/projects/github-com-ramotion-gliding-collection)\n![Swift](https://img.shields.io/badge/Swift-4.2-2ecc71.svg)\n[![Donate](https://img.shields.io/badge/Donate-PayPal-blue.svg)](https://paypal.me/Ramotion)\n\n## Requirements\n\n- iOS 8.0+\n- Xcode 8\n- Swift 3 (\u003c= 1.0.3)\n- Swift 4 (\u003e= 1.1.0)\n- Swift 4.2 (~\u003e 2.0)\n\n\u003cbr\u003e\n\n## Installation\nYou can install `GlidingCollection` in several ways:\n\n- Add source files to your project.\n\n\u003cbr\u003e\n\n- Use [CocoaPods](https://cocoapods.org):\n``` ruby\npod 'GlidingCollection'\n```\n\n\u003cbr\u003e\n\n- Use [Carthage](https://github.com/Carthage/Carthage):\n```\ngithub \"Ramotion/gliding-collection\"\n```\n\n\u003cbr\u003e\n\n## How to use\n\n• Create a view controller class:\n\n```swift\nimport GlidingCollection\n\nclass ViewController: UIViewController {\n  let items = [\"gloves\", \"boots\", \"bindings\", \"hoodie\"]\n}\n```\n\n• Drag a `UIView` onto the canvas. Change it's class to `GlidingCollection` and use autolayout constraints.\n\n![step-2](./assets/step-2.png)\n\n• Connect this view to your view controller class as an `@IBOutlet`.\n\n```swift\n@IBOutlet var glidingCollection: GlidingCollection!\n```\n\n• Make your view controller conform to `GlidingCollectionDatasource`. It's very similar to the `UITableView` or `UICollectionView` *datasource* protocols that you know:\n\n```swift\nextension ViewController: GlidingCollectionDatasource {\n\n  func numberOfItems(in collection: GlidingCollection) -\u003e Int {\n    return items.count\n  }\n\n  func glidingCollection(_ collection: GlidingCollection, itemAtIndex index: Int) -\u003e String {\n    return \"– \" + items[index]\n  }\n\n}\n```\n\n• Make your view controller conform to `UICollectionViewDatasource`:\n\n```swift\nextension ViewController: UICollectionViewDatasource {\n  \n  func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -\u003e Int {\n    let section = glidingView.expandedItemIndex // Value of expanded section.\n    return images[section].count\n  }\n  \n  func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -\u003e UICollectionViewCell {\n    guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: \"Cell\", for: indexPath) as? CollectionCell else { return UICollectionViewCell() }\n    // Configure and return your cell.\n    return cell\n  }\n  \n}\n```\n\n## Customize\n\nYou can customize the appearance of `GlidingCollection` by overriding `GlidingConfig`'s `shared` instance with your own.\n\n```swift\nvar config = GlidingConfig.shared\nconfig.buttonsFont = UIFont.boldSystemFont(ofSize: 22)\nconfig.activeButtonColor = .black\nconfig.inactiveButtonsColor = .lightGray\nGlidingConfig.shared = config\n```\n\n\u003e🗒 All parameters with their descriptions are listed in [`GlidingConfig`](/GlidingCollection/GlidingConfig.swift).\n\n\u003cbr\u003e\n\n## Notes\n\nThere is a [`GlidingCollectionDelegate`](/GlidingCollection/Protocols/GlidingCollectionDelegate.swift) protocol which can notify you when *item* in `GlidingCollection` `didSelect`, `willExpand` and `didExpand`.\n\nIf you want to achieve a parallax effect on a horizontal cards stack, you need to place your `parallax view` in a cell's `contentView` and set its `tag` to `99`.\n\n![parallax-view](./assets/parallax-view.png)\n\nThere is a `kGlidingCollectionParallaxViewTag` constant if you want to layout a cell in code.\n```swift\nimageView.tag = kGlidingCollectionParallaxViewTag\n```\n\n## 📄 License\n\nGliding Collection is released under the MIT license.\nSee [LICENSE](./LICENSE) for details.\n\nThis library is a part of a \u003ca href=\"https://github.com/Ramotion/swift-ui-animation-components-and-libraries\"\u003e\u003cb\u003eselection of our best UI open-source projects.\u003c/b\u003e\u003c/a\u003e\n\nIf you use the open-source library in your project, please make sure to credit and backlink to https://www.ramotion.com/\n\n## 📱 Get the Showroom App for iOS to give it a try\nTry this UI component and more like this in our iOS app. Contact us if interested.\n\n\u003ca href=\"https://itunes.apple.com/app/apple-store/id1182360240?pt=550053\u0026ct=gliding-collection\u0026mt=8\" \u003e\n\u003cimg src=\"https://github.com/ramotion/gliding-collection/raw/master/app_store@2x.png\" width=\"117\" height=\"34\"\u003e\u003c/a\u003e\n\n\u003ca href=\"https://www.ramotion.com/agency/app-development/?utm_source=gthb\u0026utm_medium=repo\u0026utm_campaign=gliding-collection\"\u003e\n\u003cimg src=\"https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png\" width=\"187\" height=\"34\"\u003e\u003c/a\u003e\n\u003cbr\u003e\n\u003cbr\u003e\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framotion%2Fgliding-collection","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Framotion%2Fgliding-collection","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Framotion%2Fgliding-collection/lists"}