A view that displays a Live Photo—a picture that also includes motion and sound from the moments just before and after its capture.


iOS, Mac Catalyst, tvOS
class PHLivePhotoView : UIView
class PHLivePhotoView : NSView


Use a Live Photo view to display the photo and control playback of its motion and sound content. In iOS and tvOS, you can obtain Live Photo objects from the Photos library, using the UIImagePickerController or PHAsset and PHImageManager classes, or by creating one from asset resources exported from a Photos library. In macOS, Live Photo objects are available only when editing Live Photo content in a photo editing extension that runs in the Photos app—see the PHContentEditingInput class to access Live Photo content in an editing session.

By default, a Live Photo view uses its own gesture recognizer to allow the user to play the motion and sound content of a Live Photo with the same interactions and visual effects seen in the Photos app. To customize this gesture recognizer—for example, to install it on a different view for proper event handling in your app’s view hierarchy—use the playbackGestureRecognizer property.

To animate the view briefly to hint that a picture is a Live Photo, use the startPlayback(with:) method with the PHLivePhotoViewPlaybackStyle.hint option.


Choosing a Live Photo to Display

var livePhoto: PHLivePhoto?

The Live Photo displayed in the view.

Managing Playback

var playbackGestureRecognizer: UIGestureRecognizer

A gesture recognizer that controls playback of the Live Photo in the view.

var isMuted: Bool

A Boolean value that determines whether the view plays the audio content of its Live Photo.

var audioVolume: Float

The audio gain to apply to the Live Photo’s movie content during playback.

Responding to Playback Events

var delegate: PHLivePhotoViewDelegate?

An object to be notified when Live Photo playback begins or ends.

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.

Manually Playing Live Photo Content

func startPlayback(with: PHLivePhotoViewPlaybackStyle)

Begins playback of Live Photo content in the view.

func stopPlayback()

Ends playback of Live Photo content in the view.

Accessing User Interface Icons for Live Photos

class func livePhotoBadgeImage(options: PHLivePhotoBadgeOptions) -> UIImage

Returns an icon image for the specified Live Photo semantic options.

var livePhotoBadgeView: NSView?

A view for displaying Live Photo status.


enum PHLivePhotoViewPlaybackStyle

Options for how much of the motion and sound content of a Live Photo to play, used in the startPlayback(with:) method and in messages to the view’s delegate object.

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

Live Photos

Displaying Live Photos

Provide the same interactive playback of Live Photos as in the iOS Photos app.

class PHLivePhoto

A displayable representation of a Live Photo—a picture that includes motion and sound from the moments just before and after its capture.