Swiftpack.co - Package - iashishbhandari/ABStackKit


Written in Swift 4, presenting a colourful scrollable StackView. Simply manage the lifecycle of the StackView via StackViewEmbeddable protocol or subclassing the StackViewController. Additionally if you need to colour its background or apply rotation on it or just use it on a portion of your view, this is the one library that you need. Only Swift compatible.

Installation with CocoaPods

CocoaPods is a dependency manager for both Swift and Objective-C. ABStackKit is available through CocoaPods. You can install it with the following command:

$ gem install cocoapods


To install it, simply add the following line to your Podfile:

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '9.0'

target 'TargetName' do
    pod "ABStackKit"

Then, run the following command:

$ pod install


Sample Code (Swift)

import ABStackKit

// setup the stack view
let stackView = StackView(frame: view.frame)
stackView.delegate = self

// embedd to your controller's view
view.addEdgeAnchors(onView: stackView)

// implement methods from StackViewEmbeddable protocol
func willConfigure(_ stackView: StackView) {
    stackView.axis = .vertical
    stackView.alignment = .center
    stackView.distribution = .equalSpacing
    stackView.spacing = 9
    stackView.animDuration = 0.99
    stackView.clockRadian = .pi/99
    stackView.backgroundColor = .red
    stackView.layoutMargins = UIEdgeInsets(top: 9, left: 9, bottom: 9, right: 9)
func numberOfChildViews() -> Int {
    return 6
func childViewForIndex(_ index: Int) -> UIView {
    let childView = UIView(frame: CGRect(x: 0, y: 0, width: view.bounds.width/2, height: view.bounds.height/2))
    childView.backgroundColor = .blue
    let lblNumber = UILabel()
    lblNumber.text = "View \(index+1)"
    lblNumber.textColor = .white
    childView.addCenterXYAnchors(onView: lblNumber)
    return childView

func didSelectChildView(_ view: UIView, index: Int) {
    if let height = view.constraint(withIdentifier: ConstraintTag.H)?.constant {
	    view.constraint(withIdentifier: ConstraintTag.H)?.constant = height/2
	    UIView.animate(withDuration: 0.25) {

func didScrollToChildView(_ view: UIView, index: Int) {}

// ...


If you see a way to improve the project :

  • If you found a bug, and can provide steps to reliably reproduce it, open an issue.
  • If you have a feature request, open an issue.
  • If you want to contribute, submit a pull request.

Recommend following GitHub Swift Style Guide

Thanks! :v:


  • [ ] Add Swift Package Manager support


Ashish Bhandari, ashishbhandariplus@gmail.com


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


Stars: 2
Help us keep the lights on


Used By

Total: 0