LNPreviewToContextMenu is a framework for automatically transforming your existing 3D Touch Peek&Pop preview controllers and actions into the new
UIContextMenu system in iOS 13.
With this framework, your existing 3D Touch Peek&Pop previewing code will automagically display in the new
UIContextMenu system under iOS 13 and above.
- Supports storyboard and code-based previewing
- Optionally, supports adding images to your existing preview action items to display as menu item images
- Adds support for devices without 3D Touch (including iPhone 11 and iPads)
- Mac Catalyst support (your preview actions are displayed as context menus)
Swift Package Manager is the recommended way to integrate
LNPreviewToContextMenu in your project.
LNPreviewToContextMenu supports SPM versions 5.1.0 and above. To use SPM, you should use Xcode 11 to open your project. Click
Swift Packages ->
Add Package Dependency, enter
https://github.com/LeoNatan/LNPreviewToContextMenu. Select the version you’d like to use.
You can also manually add the package to your
.package(url: "https://github.com/LeoNatan/LNPreviewToContextMenu.git", from: "1.0")
And the dependency in your target:
.target(name: "BestExampleApp", dependencies: ["LNPreviewToContextMenu"]),
Add the following to your Cartfile:
Make sure you follow the Carthage integration instructions here.
LNPreviewToContextMenu.xcodeproj project to your project, and add
LNPreviewToContextMenu.framework to Frameworks, Libraries, and Embedded Content in your project target's General tab. Xcode should sort everything else on its own.
Check out the included example project to see how it is integrated with the framework.
CocoaPods is not supported. There are many reasons for this. Instead of CocoaPods, use Swift Package Manager. You can continue using CocoaPods for for your other dependencies and Swift Package Manager for
Just link your project with the framework, and the magic will happen automatically.
<LNPreviewToContextMenu/UIPreviewAction+Images.h> to add support for images to your preview action items.