ContextMenuSwift
A Simple Context And Dropdown Menu for Swift.
Installation ?
Just add ContextMenuSwift
to your Podfile and pod install
. Done!
pod 'ContextMenuSwift'
Usage ✨
Example 1
Show the menu of string values on your view
CM.items = ["Item 1", "Item 2", "Item 3"]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
Example 2
Update menu items async
CM.items = ["Item 1", "Item 2", "Item 3"]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
CM.items = ["Item 1"]
CM.updateView(animated: true)
}
Example 3
Update targeted view async
CM.items = ["Item 1", "Item 2", "Item 3"]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) {
CM.changeViewTargeted(newView: YourView)
CM.updateView(animated: true)
}
Example 4
Show menu with icons
let share = ContextMenuItemWithImage(title: "Share", image: #imageLiteral(resourceName: "icons8-upload"))
let edit = "Edit"
let delete = ContextMenuItemWithImage(title: "Delete", image: #imageLiteral(resourceName: "icons8-trash"))
CM.items = [share, edit, delete]
CM.showMenu(viewTargeted: YourView, delegate: self, animated: true)
Delegate
You can check events by implement ContextMenuDelegate
extension ViewController : ContextMenuDelegate {
func contextMenu(_ contextMenu: ContextMenu, targetedView: UIView, didSelect item: ContextMenuItem, forRowAt index: Int) -> Bool {
print(item.title)
return true //should dismiss on tap
}
func contextMenuDidAppear(_ contextMenu: ContextMenu) {
print("contextMenuDidAppear")
}
func contextMenuDidDisappear(_ contextMenu: ContextMenu) {
print("contextMenuDidDisappear")
}
}
Requirements
- Xcode 9+
- Swift 4.0
- iOS 10+