SlideMenuControllerSwift
iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift.
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
- Initializing the SlideMenuController:
let mainViewController = UIViewController()
let leftViewController = UIViewController()
let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftViewController)
- Toggling the left menu programmatically:
slideMenuController.toggleLeft()
- Customizing menu appearance:
SlideMenuOptions.contentViewScale = 0.96
SlideMenuOptions.hideStatusBar = true
SlideMenuOptions.leftViewWidth = 200
- Adding a right menu:
let rightViewController = UIViewController()
slideMenuController.rightViewController = rightViewController
Getting Started
-
Install via CocoaPods by adding to your Podfile:
pod 'SlideMenuControllerSwift'
-
Import the library in your Swift file:
import SlideMenuControllerSwift
-
Create your main and menu view controllers:
let mainViewController = MainViewController() let leftMenuViewController = LeftMenuViewController()
-
Initialize the SlideMenuController:
let slideMenuController = SlideMenuController(mainViewController: mainViewController, leftMenuViewController: leftMenuViewController)
-
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
SlideMenuControllerSwift
iOS Slide View based on iQON, Feedly, Google+, Ameba iPhone app.
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
- Inherit
SlideMenuController
and put UIViewController in a storyboard. - 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
SlideMenuControllerOC
License
SlideMenuControllerSwift is available under the MIT license. See the LICENSE file for more info.
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
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot