VerticalCardSwitcher 0.1.1

VerticalCardSwitcher 0.1.1

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release May 2017
SwiftSwift Version 3.1
SPMSupports SPM

Maintained by Matija Kruljac.



VerticalCardSwitcher is inspired by Shazam Discover view. It is a vertical sequence of UIViews where first UIView in sequence is always 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):

  • Example 2 (SecondViewController):

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

  1. Add VerticalCardSwitcherDelegate for delegate class:
class ViewController: UIViewController, VerticalCardSwitcherDelegate {

}
  1. Initialize and setup VerticalCardSwitcher:
private var verticalCardSwitcher: VerticalCardSwitcher!

verticalCardSwitcher = VerticalCardSwitcher.init(in: view)
verticalCardSwitcher.delegate = self
verticalCardSwitcher.display()
  1. Implement VerticalCardSwitcherDelegate required 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
}
  1. Implement VerticalCardSwitcherDelegate optional 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, [email protected]

License

VerticalCardSwitcher is available under the MIT license. See the LICENSE file for more info.