RevealMenuController alternatives and similar libraries
Based on the "Menu" category.
Alternatively, view RevealMenuController alternatives based on common mentions on social networks and blogs.
-
PageMenu
A paging menu controller built from other view controllers placed inside a scroll view (like Spotify, Windows Phone, Instagram) -
SideMenu
Simple side/slide menu control for iOS, no code necessary! Lots of customization. Add it to your project in 5 minutes or less. -
SlideMenuControllerSwift
iOS Slide Menu View based on Google+, iQON, Feedly, Ameba iOS app. It is written in pure swift. -
CircleMenu
:octocat: ⭕️ CircleMenu is a simple, elegant UI menu with a circular layout and material design animations. Swift UI library made by @Ramotion -
BTNavigationDropdownMenu
The elegant yet functional dropdown menu, written in Swift, appears underneath the navigation bar to display a list of defined items when a user clicks on the navigation title. -
GuillotineMenu
Our Guillotine Menu Transitioning Animation implemented in Swift reminds a bit of a notorious killing machine. -
PagingKit
PagingKit provides customizable menu UI. It has more flexible layout and design than the other libraries. -
CategorySliderView
slider view for choosing categories. add any UIView type as category item view. Fully customisable -
RadialMenu
RadialMenu is a custom control for providing a touch context menu (like iMessage recording in iOS 8) built with Swift & POP -
DTPagerController
A fully customizable container view controller to display a set of ViewControllers in a horizontal scroll view. Written in Swift. -
RHSideButtons
Library provides easy to implement variation of Android (Material Design) Floating Action Button for iOS. You can use it as your app small side menu. 🌶
SaaSHub - Software Alternatives and Reviews
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of RevealMenuController or a related project?
README
Easy to implement controller with expanding menu items. Design is very similar to iOS native ActionSheet presentation style of a UIAlertController. As an additional feature you can set small image icon beside menu item text. Take a look at example screenshot to see all available features.
Features:
- [x] Expandable menu groups
- [x] Custom presentation position (top, center or bottom)
- [x] Custom text alignment
- [x] Menu items can have images
Here are few screenshot with possible usage. I've added a small video (~5Mb) also where you can see live example without installation and launching demo project.
Installation
CocoaPods
RevealMenuController is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod "RevealMenuController"
Cartage
Support will be added in version 1.0
Usage
Initialize RevealMenuController
and set required properties:
let revealController = RevealMenuController(title: "Contact Support", position: .Center)
revealController.displayCancel = true // Display Cancel menu item
revealController.hideOnBackgorundTap = true // Hide menu when user taps outside of items area
revealController.statusBarStyle = .LightContent // Status bar style
Now you can add actions to menu. Take a look at image
property: this menu item will have small icon places beside a text.
let webImage = UIImage(named: "IconHome")
let webAction = RevealMenuAction(title: "Open web page", image: webImage, handler: { (controller, action) in
// Code to support tap on this item
})
revealController.addAction(webAction)
Adding of action groups is very similar:
let emailImage = UIImage(named: "IconEmail")
let phoneImage = UIImage(named: "IconCall")
let techGroup = RevealMenuActionGroup(title: "Contact support", actions: [
RevealMenuAction(title: "[email protected]", image: emailImage, handler: { (controller, action) in
// Code to support tap on this item
}),
RevealMenuAction(title: "1-866-752-7753", image: phoneImage, handler: { (controller, action) in
// Code to support tap on this item
})
])
revealController.addAction(techGroup)
When you're ready to present controller call:
revealController.displayOnController(self)
Appearance animation depends on it's position:
- Top: Controller appearance will have top-to-bottom slide animation.
- Center: Appearance with fade-in animation
- Bottom: Appearance with bottom-to-top slide animation.
Disappearance will have reverse animation.
Dismissing
To dismiss RevealMenuController
call next method. Collapse animation will be reversed to appearance one.
controller.dismissViewControllerAnimated(true, completion: {
// Completion block
})
RevealMenuAction
RevealMenuAction can be initialized in few ways. Title is always required for action. Image is an optional value. Default text alignment is Center
. Handler is also not required but if you will not specify this property there will be no response for user tap on this item.
List of initializers:
init(title: String, image: UIImage?, alignment: NSTextAlignment, handler: RevealControllerHandler?)
init(title: String, image: UIImage?, handler: RevealControllerHandler?)
init(title: String, alignment: NSTextAlignment, handler: RevealControllerHandler?)
init(title: String, handler: RevealControllerHandler?)
RevealMenuActionGroup
Action groups will keep few RevealMenuAction
s inside. When user press on such menu item group will expand and show list of available actions. Second tap will collapse actions list.
Title is also required for action group. It can have it's own icon image and text alignment, similar to RevealMenuAction
. The only difference is that group has no tap handler but actions array instead of it.
List of initializers:
init(title: String, image: UIImage?, alignment: NSTextAlignment, actions: [RevealMenuAction])
init(title: String, alignment: NSTextAlignment, actions: [RevealMenuAction])
init(title: String, image: UIImage, actions: [RevealMenuAction])
init(title: String, actions: [RevealMenuAction])
TODO
- [ ] Custom sizes for iPad
- [ ] Menu item labels customization (font, color)
- [ ] Implement menu title
- [ ] Support for multiline items
Write me or make a pull request if you have any ideas what else functionality could be useful for RevealMenuController
.
Author
License
RevealMenuController
is available under the MIT license. See the LICENSE file for more info.
*Note that all licence references and agreements mentioned in the RevealMenuController README section above
are relevant to that project's source code only.