Awesome
<a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=gliding-collection"><img src="https://github.com/Ramotion/folding-cell/blob/master/header.png"></a>
<a href="https://github.com/Ramotion/gliding-collection"> <img align="left" src="https://github.com/Ramotion/gliding-collection/blob/master/assets/gliding-collection.gif" width="480" height="360" /></a> <p><h1 align="left">GLIDING COLLECTION</h1></p> <h4>A smooth, flowing, customizable decision for a UICollectionView Swift Controller</h4><p><h6>We specialize in the designing and coding of custom UI for Mobile Apps and Websites.</h6> <a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=gliding-collection"> <img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a> </p> <p><h6>Stay tuned for the latest updates:</h6> <a href="https://goo.gl/rPFpid" > <img src="https://i.imgur.com/ziSqeSo.png/" width="156" height="28"></a></p> </br>
Requirements
- iOS 8.0+
- Xcode 8
- Swift 3 (<= 1.0.3)
- Swift 4 (>= 1.1.0)
- Swift 4.2 (~> 2.0)
Installation
You can install GlidingCollection
in several ways:
- Add source files to your project.
- Use CocoaPods:
pod 'GlidingCollection'
<br>
- Use Carthage:
github "Ramotion/gliding-collection"
<br>
How to use
• Create a view controller class:
import GlidingCollection
class ViewController: UIViewController {
let items = ["gloves", "boots", "bindings", "hoodie"]
}
• Drag a UIView
onto the canvas. Change it's class to GlidingCollection
and use autolayout constraints.
• Connect this view to your view controller class as an @IBOutlet
.
@IBOutlet var glidingCollection: GlidingCollection!
• Make your view controller conform to GlidingCollectionDatasource
. It's very similar to the UITableView
or UICollectionView
datasource protocols that you know:
extension ViewController: GlidingCollectionDatasource {
func numberOfItems(in collection: GlidingCollection) -> Int {
return items.count
}
func glidingCollection(_ collection: GlidingCollection, itemAtIndex index: Int) -> String {
return "– " + items[index]
}
}
• Make your view controller conform to UICollectionViewDatasource
:
extension ViewController: UICollectionViewDatasource {
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
let section = glidingView.expandedItemIndex // Value of expanded section.
return images[section].count
}
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
guard let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath) as? CollectionCell else { return UICollectionViewCell() }
// Configure and return your cell.
return cell
}
}
Customize
You can customize the appearance of GlidingCollection
by overriding GlidingConfig
's shared
instance with your own.
var config = GlidingConfig.shared
config.buttonsFont = UIFont.boldSystemFont(ofSize: 22)
config.activeButtonColor = .black
config.inactiveButtonsColor = .lightGray
GlidingConfig.shared = config
<br>🗒 All parameters with their descriptions are listed in
GlidingConfig
.
Notes
There is a GlidingCollectionDelegate
protocol which can notify you when item in GlidingCollection
didSelect
, willExpand
and didExpand
.
If 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
.
There is a kGlidingCollectionParallaxViewTag
constant if you want to layout a cell in code.
imageView.tag = kGlidingCollectionParallaxViewTag
📄 License
Gliding Collection is released under the MIT license. See LICENSE for details.
This library is a part of a <a href="https://github.com/Ramotion/swift-ui-animation-components-and-libraries"><b>selection of our best UI open-source projects.</b></a>
If you use the open-source library in your project, please make sure to credit and backlink to https://www.ramotion.com/
📱 Get the Showroom App for iOS to give it a try
Try this UI component and more like this in our iOS app. Contact us if interested.
<a href="https://itunes.apple.com/app/apple-store/id1182360240?pt=550053&ct=gliding-collection&mt=8" > <img src="https://github.com/ramotion/gliding-collection/raw/master/app_store@2x.png" width="117" height="34"></a> <a href="https://www.ramotion.com/agency/app-development/?utm_source=gthb&utm_medium=repo&utm_campaign=gliding-collection"> <img src="https://github.com/ramotion/gliding-collection/raw/master/contact_our_team@2x.png" width="187" height="34"></a> <br> <br>