Skip to content

MarioIannotta/SwiftyContextMenu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftyContextMenu: UIContextMenu backporting with Swifter API

Version License Platform

Light mode Dark mode Runtime change

Example

To run the example project, clone the repo, and run pod install from the Example directory first.

Requirements

  • iOS 10+

Installation

ContextMenu is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'SwiftyContextMenu'

Usage

let favoriteAction = ContextMenuAction(title: "Looooooooooooong title",
                                       image: UIImage(named: "heart.fill"),
                                       action: { _ in print("favorite") })
let shareAction = ContextMenuAction(title: "Share",
                                    image: UIImage(named: "square.and.arrow.up.fill"),
                                    action: { _ in print("square") })
let deleteAction = ContextMenuAction(title: "Delete",
                                     image: UIImage(named: "trash.fill"),
                                     tintColor: UIColor.red,
                                     action: { _ in print("delete") })
let actions = [favoriteAction, shareAction, deleteAction]
let contextMenu = ContextMenu(title: "Actions", actions: actions)
button.addContextMenu(contextMenu, for: .tap(numberOfTaps: 1), .longPress(duration: 0.3))

Dark mode

By default the ContextMenu adapts his style automatically with the system (> iOS 13) but you can force an appearance if you want.

let favoriteAction = ContextMenuAction(
	title: "Like",
	image: UIImage(named: "heart.fill"),
	tintColor: UIColor.black,
	tintColorDark: UIColor.white,
	action: { _ in }
)
                                               
let contextMenu = ContextMenu(
	mode: .light, //.automatic, .light or .dark
	title: "Actions",
	actions: actions
)

If you set mode to .automatic please be sure to provide a tintColor to the ContextMenuAction that contains light and dark appearance. (When set to .automatic only tintColor is applied.)

Author

Mario Iannotta, [email protected].

If you like this git you can follow me here or on Twitter @MarioIannotta; sometimes I post interesting stuff.

License

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

TODOs:

  • Document all the public stuff
  • Support dark mode
  • Improve the Readme Usage section
  • Support dynamic type

About

UIContextMenu backporting with Swifter API

Resources

License

Stars

Watchers

Forks

Packages

No packages published