swi

SwiftyContextMenu

UIContextMenu backporting with Swifter API

Showing:

Popularity

Downloads/wk

0

GitHub Stars

99

Maintenance

Last Commit

10mos ago

Contributors

1

Package

Dependencies

0

License

MIT

Categories

Readme

SwiftyContextMenu: UIContextMenu backporting with Swifter API

Version License Platform

Light modeDark modeRuntime 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, info@marioiannotta.com.

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100