CocoaPods trunk is moving to be read-only. Read more on the blog, there are 18 months to go.

ADSlidePanels 1.0.5

ADSlidePanels 1.0.5

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Jan 2017
SwiftSwift Version 3.0
SPMSupports SPM

Maintained by Aniruddha Das.




  • By
  • Aniruddha Das

ADSlidePanels

Introduction

It shows a sliding menu, which is customizable. You can also display the user pic at the top.

Requirements Specifications

1. Target OS: iOS

2. Supported OS Versions: iOS 9.0+

3. Written in: Swift

4. Supports: Swift 3.0

5. IDE: Xcode 8

6. Architectures Supported: armv7, armv7s, arm64

7. Supported devices: iPhone 5s, iPhone6 and above, and all iPads

Install Guide

Usage Guide

Step 1.

Embed your view controller in a navigation view controller from the storyboard. To do this, Editor -> Embed In -> Navigation Controller.

Step 2.

Make sure you add a few necessary assets for the menus.

Step 3.

Inside your ViewController.swift, write this:

import UIKit
import ADSlidePanels

class ViewController: UIViewController, ADSlidePanelViewDelegate {

     var slideView: ADSlidePanelView?

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        self.addSidePanel()
        self.leftBarButton()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func leftBarButton() {
        var leftBarButtons = [UIBarButtonItem]()
        let barButtonItem = UIBarButtonItem.init(image: UIImage(named: "menu_normal"), style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.menuButtonTapped))
        leftBarButtons.append(barButtonItem)
        if leftBarButtons.count > 0 {
            self.navigationItem.leftBarButtonItems = leftBarButtons
        }
        let backButton = UIBarButtonItem(title: "Back", style: .plain, target: self, action: nil)
        self.navigationItem.backBarButtonItem = backButton
    }

    func menuButtonTapped() {
        self.showSidePanel()
    }

    func addSidePanel() {
        if self.slideView != nil {
            self.slideView?.removeFromSuperview()
            self.slideView = nil
        }

        let contents = self.sidePanelContents()
        self.slideView = ADSlidePanelView.initMenuView(contents, slideDirection: .left, delegate: self)
        self.slideView?.isHidden = true
        self.slideView?.backGroundColor = UIColor.white
        self.slideView?.separatorColor = UIColor.init(colorLiteralRed: 86.0/255.0, green: 119.0/255.0, blue: 133.0/255.0, alpha: 1.0)
        self.slideView?.separatorType = UITableViewCellSeparatorStyle.singleLine
        self.slideView?.transparentViewMargin = 120
        self.view.addSubview(self.slideView!)
        self.slideView?.setupInitialConstraintWRTView(self.view, containerView: nil)
    }

    func sidePanelContents() -> [Item] {
        var sideContents = [Item]()
        let item1 = Item.init(title: "Feedback", iconName: "feedback", isSelected: false)
        sideContents.append(item1)
        let item2 = Item.init(title: "My Job", iconName: "myjobs", isSelected: false)
        sideContents.append(item2)

        return sideContents
    }


    func showSidePanel() {
        self.slideView?.lblUserName.text = "Aniruddha Das"
        self.slideView?.userIView.image = UIImage(named: "DP")
        self.slideView?.menuTView.reloadData()
        self.slideView?.showSidePanelWithoutSlideEffectOnSuperView()
    }

    func removeSidePanel() {
        self.slideView?.removeSidePanelWithoutSlideEffectOnSuperView()
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        self.removeSidePanel()
    }

    func didSelectItem(_ item: Item) {

        if item.title.caseInsensitiveCompare("Feedback") == ComparisonResult.orderedSame {

        } else if item.title.caseInsensitiveCompare("My Jobs") == ComparisonResult.orderedSame {

        }

        self.removeSidePanel()
    }

}

Note:

You can set the different properties of ADSlidePanels like backGroundColor, separatorColor, separatorType, transparentViewMargin etc., if you need to customize it, otherwise it will take default values.

Output: