Side Menu Custom Control for iOS apps
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
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.
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()