Skip to content

SimformSolutionsPvtLtd/SSCustomSideMenu

Repository files navigation

SSCustomSideMenu

Version License Platform

Alt text Alt text Alt text Alt text

Features

  • Highly customizable
  • Multiple options of animations
  • Dynamic menu size
  • Available through CocoaPods

Requirements

  • iOS 11.0+
  • Xcode 10+

Installation

CocoaPods

  • You can use CocoaPods to install SSCustomSideMenu by adding it to your Podfile:

     use_frameworks! pod 'SSCustomSideMenu' 
  • In the swift file, import SSSideMenu module:

     import UIKit import SSCustomSideMenu 

Manually

  • Download and drop SSCustomSideMenu folder in your project.
  • Congratulations!

Usage example

Create a subclass of SSSideMenuContainerViewController

class SideMenuViewController: SSSideMenuContainerViewController { ... } 
  • In the storyboard assign a custom class SideMenuViewController you just created to a viewController. This viewController will be the container for Side menu. Alt text

    Create Menu Table

    let menuTable = SSMenuTableView() 

    Configure Side Menu Options

    let menuCellConfig = SSMenuCellConfig() menuCellConfig.cellStyle = .defaultStyle menuCellConfig.leftIconPadding = 20 menuCellConfig.imageToTitlePadding = 10 menuCellConfig.imageHeight = 24 menuCellConfig.imageWidth = 24 menuCellConfig.numberOfOptions = 3 menuCellConfig.selectedColor = .purple menuCellConfig.nonSelectedColor = .black menuCellConfig.images = [UIImage(named: "first"), UIImage(named: "second"), UIImage(named: "third")] menuCellConfig.titles = ["First", "Second", "Thrird"] self.menuTable.config = menuCellConfig 

    Configure Side Menu

    let sideMenuConfig = SSSideMenuConfig() sideMenuConfig.animationType = .slideOut // Other options: .slideIn, .compress(0.8, 20) sideMenuConfig.sideMenuPlacement = .left // Other options: .right sideMenuConfig.menuWidth = UIScreen.main.bounds.width * 0.5 let firstViewController = storyboard?.instantiateViewController(withIdentifier: "FirstViewController") let secondViewController = storyboard?.instantiateViewController(withIdentifier: "SecondViewController") let thirdViewController = storyboard?.instantiateViewController(withIdentifier: "ThirdViewController") sideMenuConfig.viewControllers = [firstViewController!, secondViewController!, thirdViewController!] sideMenuConfig.menuTable = menuTable self.ssMenuConfig = sideMenuConfig 

    Delegates

    • SSCustomSideMenu provides delegate 'sideMenuDelegate' which lets developers dynamically decide which operations to perform on menu option selection

       sideMenuDelegate = self 
    • By doing this, you will be asked to confirm to following protocol:

       extension ViewController: SSSideMenuDelegate { func shouldOpenViewController(forMenuOption menuOption: Int) -> Bool { if menuOption == 1 { // Perform action for custom options (i.e logout) return false } else { return true } } } 

    Open and Close Side Menu

    • SSCustomSideMenu Provides custom side menu button - 'SSMenuButton'. You only need to assign SSMenuButton custom class to your UIButton from Interface Builder

    • Manually open or close side menu :

       SSSideMenuControls.openOrCloseSideMenu() 

Contribute

  • We would love you for the contribution to SSCustomSideMenu, check the LICENSE file for more info.

License

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

License Platform