VerticalCardSwitcher
VerticalCardSwitcher is library that provides UI list of cards which can be iterated by swiping up and down.
Install / Use
/learn @MatijaKruljac/VerticalCardSwitcherREADME
VerticalCardSwitcher
VerticalCardSwitcher is inspired by Shazam Discover view. It is a vertical sequence of UIViews where first UIView in sequence is always completely displayed and every next UIView is partially displayed. Also there is VerticalCardSwitcherDelegate which is added for VerticalCardSwitcher customization. VerticalCardSwitcher is not implemented with UICollectionView and it's contained inside parent view.
Example
To run the example project, clone the repo, and run pod install from the Example directory first. There are two examples FirstViewController and SecondViewController.
- Example 1 (
FirstViewController): </br>
- Example 2 (
SecondViewController): </br>
Requirements
- iOS 8.0+
- Xcode 8
- Swift 3.0
Installation
VerticalCardSwitcher is available through CocoaPods. To install it, simply add the following lines to your Podfile:
platform :ios, '8.0'
use_frameworks!
target 'MyApp' do
pod "VerticalCardSwitcher"
end
Usage
- Add
VerticalCardSwitcherDelegatefor delegate class:
class ViewController: UIViewController, VerticalCardSwitcherDelegate {
}
- Initialize and setup
VerticalCardSwitcher:
private var verticalCardSwitcher: VerticalCardSwitcher!
verticalCardSwitcher = VerticalCardSwitcher.init(in: view)
verticalCardSwitcher.delegate = self
verticalCardSwitcher.display()
- Implement
VerticalCardSwitcherDelegaterequired methods:
func numberOfCards(for verticalCardSwitcher: VerticalCardSwitcher) -> Int {
return 22
}
func distanceBetweenCards(for verticalCardSwitcher: VerticalCardSwitcher) -> CGFloat {
return 20.0
}
func heightForCardView(in verticalCardSwitcher: VerticalCardSwitcher) -> CGFloat {
return 430.0
}
func sideMargins(for verticalCardSwitcher: VerticalCardSwitcher) -> CGFloat {
return 40.0
}
func addDesign(for cardView: CardView, at index: Int, in verticalCardSwitcher: VerticalCardSwitcher) {
}
// values from 0 to 1 (represents percentage of CardView height)
func heightOfShowedPartForEveryNextCard(in verticalCardSwitcher: VerticalCardSwitcher) -> CGFloat {
return 0.20
}
- Implement
VerticalCardSwitcherDelegateoptional methods for scrolling events of CardView:
func currentCardScrolledDown(cardView: CardView, for verticalCardSwitcher: VerticalCardSwitcher) {
print("currentCardScrolledDown")
}
func nextCardScrolledUp(cardView: CardView, for verticalCardSwitcher: VerticalCardSwitcher) {
print("nextCardScrolledUp")
}
Author
Matija Kruljac, kruljac.matija@gmail.com
License
VerticalCardSwitcher is available under the MIT license. See the LICENSE file for more info.
