Create custom extensions for editing photo, video, and Live Photos content in the Photos app. Add views to your app to display Live Photos content interactively.


The Photos UI framework provides user interface features related to the Photos framework (in iOS, tvOS, and macOS) and support for creating photo editing extensions for the Photos app (in iOS and macOS).

Creating Photo Editing Extensions

In iOS or macOS, you adopt the PHContentEditingController protocol to create an app extension that adds to the photo editing options and capabilities in the Photos app. Creating such an extension also requires using the following classes from the Photos framework:

Displaying Live Photos

The PHLivePhotoView class provides a way to display Live Photos—pictures, taken on compatible hardware, that include motion and sound from the moments just before and after their capture. A Live Photo view provides the same interactive playback features found in the Photos app.

In iOS and tvOS, you can fetch Live Photo objects to display in a Live Photo view with the PHLivePhoto class in the Photos framework. In macOS, the PHLivePhoto class provides access to Live Photos being edited in a photo editing extension for the Photos app.

To display Live Photo content on the web, use the LivePhotosKit JS framework.



protocol PHContentEditingController

The PHContentEditingController protocol defines methods you implement in a custom view controller class in order to create a Photos extension. The Photos app hosts your extension’s view controller to provide a user interface for editing photo or video assets.

protocol PHLivePhotoViewDelegate

The PHLivePhotoViewDelegate protocol describes messages sent by a PHLivePhotoView instance in response to playback events when playing the motion and sound content associated with a Live Photo. To receive these messages, implement the methods in this protocol in one of your controller objects and assign that object to the delegate property of a Live Photo view.


struct PHLivePhotoBadgeOptions

Options for the semantic use and display style of icons for badging Live Photo assets, used by the livePhotoBadgeImage(options:) method.

See Also