Skip to content

Latest commit

 

History

History
82 lines (60 loc) · 3.1 KB

README.md

File metadata and controls

82 lines (60 loc) · 3.1 KB

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