Convert Figma logo to code with AI

dekatotoro logoSlideMenuControllerSwift

iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.

3,404
754
3,404
243

Top Related Projects

Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less.

A simple side menu for iOS written in Swift.

iOS 7/8 style side menu with parallax effect.

A side menu controller written in Swift for iOS

Animated side menu with customizable UI

Quick Overview

SlideMenuControllerSwift is a lightweight and customizable slide menu controller for iOS applications written in Swift. It provides an easy way to implement a sliding side menu, similar to those found in popular apps like Facebook and Slack.

Pros

  • Easy to integrate and customize
  • Supports both left and right side menus
  • Smooth animations and gestures for menu interactions
  • Compatible with Swift 5 and later versions

Cons

  • Limited documentation and examples
  • Not actively maintained (last update was in 2019)
  • May require additional work to adapt to newer iOS versions and screen sizes
  • Lacks some advanced features found in more comprehensive menu libraries

Code Examples

  1. Initializing the SlideMenuController:
let mainViewController = UIViewController()
let leftViewController = UIViewController()
let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController)
  1. Toggling the left menu programmatically:
slideMenuController.toggleLeft()
  1. Customizing menu appearance:
SlideMenuOptions.contentViewScale = 0.96
SlideMenuOptions.hideStatusBar = true
SlideMenuOptions.leftViewWidth = 200
  1. Adding a right menu:
let rightViewController = UIViewController()
slideMenuController.rightViewController = rightViewController

Getting Started

  1. Install via CocoaPods by adding to your Podfile:

    pod 'SlideMenuControllerSwift'
    
  2. Import the library in your Swift file:

    import SlideMenuControllerSwift
    
  3. Create your main and menu view controllers:

    let mainViewController = MainViewController()
    let leftMenuViewController = LeftMenuViewController()
    
  4. Initialize the SlideMenuController:

    let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftMenuViewController)
    
  5. Set the slide menu controller as your root view controller:

    window?.rootViewController = slideMenuController
    

Competitor Comparisons

Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less.

Pros of SideMenu

  • More customizable with extensive configuration options
  • Supports multiple presentation styles (slide-in, parallax, etc.)
  • Actively maintained with frequent updates

Cons of SideMenu

  • Slightly more complex setup due to increased customization options
  • May require more code to achieve basic functionality

Code Comparison

SlideMenuControllerSwift:

let slideMenuController = SlideMenuController(mainViewController: mainVC, leftMenuViewController: leftVC)
self.window?.rootViewController = slideMenuController

SideMenu:

let menu = SideMenuNavigationController(rootViewController: YourViewController)
menu.leftSide = true
SideMenuManager.default.leftMenuNavigationController = menu
SideMenuManager.default.addPanGestureToPresent(toView: self.view)

Summary

SideMenu offers more customization and presentation styles, making it suitable for complex projects. However, this comes at the cost of a slightly steeper learning curve. SlideMenuControllerSwift provides a simpler setup but with fewer customization options. Both libraries are viable choices, with the decision depending on project requirements and developer preferences.

A simple side menu for iOS written in Swift.

Pros of ENSwiftSideMenu

  • Simpler implementation with fewer lines of code
  • Easier to customize and integrate into existing projects
  • Lightweight and less resource-intensive

Cons of ENSwiftSideMenu

  • Less feature-rich compared to SlideMenuControllerSwift
  • Limited animation options and customization possibilities
  • Fewer active contributors and updates

Code Comparison

ENSwiftSideMenu:

let menuViewController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "MenuViewController") as! MenuViewController
sideMenu = ENSideMenu(sourceView: self.view, menuViewController: menuViewController, menuPosition: .left)
sideMenu?.delegate = self
sideMenu?.menuWidth = 180

SlideMenuControllerSwift:

let storyboard = UIStoryboard(name: "Main", bundle: nil)
let mainViewController = storyboard.instantiateViewController(withIdentifier: "MainViewController") as! MainViewController
let leftViewController = storyboard.instantiateViewController(withIdentifier: "LeftViewController") as! LeftViewController
let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController)
self.window?.rootViewController = slideMenuController

Both libraries offer similar functionality for implementing side menus in Swift applications. ENSwiftSideMenu provides a more straightforward approach with less code, making it easier to integrate into existing projects. However, SlideMenuControllerSwift offers more advanced features and customization options, which may be beneficial for complex applications requiring extensive menu functionality.

iOS 7/8 style side menu with parallax effect.

Pros of RESideMenu

  • Written in Objective-C, which may be preferred by some developers
  • Supports both left and right side menus
  • Includes built-in animations and customizable appearance

Cons of RESideMenu

  • Less actively maintained (last update in 2017)
  • Not natively written in Swift, requiring bridging for Swift projects
  • Limited customization options compared to SlideMenuControllerSwift

Code Comparison

RESideMenu:

RESideMenu *sideMenu = [[RESideMenu alloc] initWithContentViewController:contentViewController
                                                    leftMenuViewController:leftMenuViewController
                                                   rightMenuViewController:rightMenuViewController];
self.window.rootViewController = sideMenu;

SlideMenuControllerSwift:

let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController)
self.window?.rootViewController = slideMenuController

Both libraries offer similar functionality for implementing side menus in iOS applications. RESideMenu is written in Objective-C and provides support for both left and right menus, while SlideMenuControllerSwift is a Swift-native solution with more active maintenance and customization options. The code comparison shows that both libraries have a straightforward setup process, with RESideMenu offering slightly more configuration options in the initialization method.

A side menu controller written in Swift for iOS

Pros of SideMenuController

  • More customizable appearance and behavior options
  • Supports both left and right side menus simultaneously
  • Easier integration with storyboards and XIBs

Cons of SideMenuController

  • Less actively maintained (last update was in 2019)
  • Fewer stars and forks on GitHub, potentially indicating a smaller community
  • May have compatibility issues with newer Swift versions

Code Comparison

SlideMenuControllerSwift:

let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController)
self.window?.rootViewController = slideMenuController
self.window?.makeKeyAndVisible()

SideMenuController:

let sideMenuController = SideMenuController(contentViewController: contentViewController, menuViewController: menuViewController)
sideMenuController.delegate = self
sideMenuController.menuWidth = 240
self.window?.rootViewController = sideMenuController

Both libraries offer similar functionality for implementing side menus in iOS applications. SlideMenuControllerSwift has a larger community and more recent updates, while SideMenuController provides more customization options and support for dual side menus. The choice between the two depends on specific project requirements and preferences for customization vs. community support.

Animated side menu with customizable UI

Pros of Side-Menu.iOS

  • More visually appealing animations and transitions
  • Customizable menu styles and effects
  • Easier integration with storyboards

Cons of Side-Menu.iOS

  • Less actively maintained (last update 4 years ago)
  • Fewer configuration options for menu behavior
  • Limited documentation and examples

Code Comparison

SlideMenuControllerSwift:

let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController, rightMenuViewController: rightViewController)

Side-Menu.iOS:

let menuLeftNavigationController = UISideMenuNavigationController(rootViewController: YourViewController)
SideMenuManager.default.leftMenuNavigationController = menuLeftNavigationController

SlideMenuControllerSwift offers a more straightforward setup with a single line of code, while Side-Menu.iOS requires additional configuration steps.

Both libraries provide similar functionality for implementing side menus in iOS applications. SlideMenuControllerSwift is more actively maintained and offers more configuration options, making it suitable for complex projects. Side-Menu.iOS, on the other hand, provides more visually appealing animations and easier integration with storyboards, making it a good choice for projects prioritizing aesthetics and quick implementation.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

SlideMenuControllerSwift

Platform Language License Issues Downloads

iOS Slide View based on iQON, Feedly, Google+, Ameba iPhone app.

sample

Installation

CocoaPods

pod 'SlideMenuControllerSwift'

Carthage

if iOS8 or later, Carthage is supported

  • Add github "dekatotoro/SlideMenuControllerSwift" to your Cartfile.
  • Run carthage update.

for more info, see Carthage

Manually

Add the SlideMenuController.swift file to your project.

Usage

Setup

Add import SlideMenuControllerSwift in your file

In your app delegate:


func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    // create viewController code...

    let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController, rightMenuViewController: rightViewController)
    self.window?.rootViewController = slideMenuController
    self.window?.makeKeyAndVisible()    

    return true
}

Storyboard Support

  1. Inherit SlideMenuController and put UIViewController in a storyboard.
  2. Override awakeFromNib, then instantiate any view controllers
class ContainerViewController: SlideMenuController {

    override func awakeFromNib() {
        if let controller = self.storyboard?.instantiateViewControllerWithIdentifier("Main") {
            self.mainViewController = controller
        }
        if let controller = self.storyboard?.instantiateViewControllerWithIdentifier("Left") {
            self.leftViewController = controller
        }
        super.awakeFromNib()
    }

}

If you want to use the custom option, please set them before calling the init method, like so:

SlideMenuOptions.leftViewWidth = 50
SlideMenuOptions.contentViewScale = .50
...

You can access from UIViewController

self.slideMenuController()?

or

if let slideMenuController = self.slideMenuController() {
    // some code
}

add navigationBarButton

viewController.addLeftBarButtonWithImage(UIImage(named: "hoge")!)
viewController.addRightBarButtonWithImage(UIImage(named: "fuga")!)

open and close

// Open
self.slideMenuController()?.openLeft()
self.slideMenuController()?.openRight()

// close
self.slideMenuController()?.closeLeft()
self.slideMenuController()?.closeRight()

monitor the states of menu, you can use SlideMenuControllerDelegate use this:

func leftWillOpen()
func leftDidOpen()
func leftWillClose()
func leftDidClose()
func rightWillOpen()
func rightDidOpen()
func rightWillClose()
func rightDidClose()

Requirements

Requires Swift4.0 and iOS 9.0 and ARC. If you are developing in the Swift1.1 ~ 3.2, please use branch of swift1.1 ~ 3.
If you want to use even iOS8.0, please to import the code directly.
If you want to use objective-c even iOS6.0, plesea use SlideMenuControllerOC.

Features

  • Highly customizable
  • Complete example

Contributing

Forks, patches and other feedback are welcome.

Creator

SlideMenuControllerSwift

Yuji Hato Blog

SlideMenuControllerOC

Pluto Y Blog Sing Weibo

License

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