父類:UIView
一個(gè)PHLivePhotoView對象是一個(gè)展示一個(gè)Live Photo的視圖匙姜。
一逃默、概述
獲取一個(gè)PHLivePhoto對象之后旨剥,使用一個(gè)Live Photo視圖來展示這個(gè)照片并且控制播放它的動(dòng)作和聲音內(nèi)容。在iOS和tvOS中臭墨,你可以使用UIImagePickerController
或者PHAsset以及PHImageManager類或者通過創(chuàng)建一個(gè)從照片庫中導(dǎo)出的資源來從照片庫中獲取Live Photo對象。在MacOS中吞加,Live Photo對象只在運(yùn)行Photos應(yīng)用中的一個(gè)照片編輯擴(kuò)展中編輯Live Photo的內(nèi)容時(shí)有效裙犹。——查看PHContentEditingInput類在編輯會(huì)話中獲取Live Photo內(nèi)容衔憨。
注意
關(guān)于如何將Live Photo和你的應(yīng)用的用戶體驗(yàn)整合到一起叶圃,請查看iOS Human Interface Guidelines中的Live Photos。
默認(rèn)情況下践图,一個(gè)Live Photo視圖使用它自己的手勢識(shí)別器來允許用戶播放一個(gè)Live Photo中的動(dòng)作和聲音內(nèi)容掺冠,交互以及視覺效果和Photos應(yīng)用中的一樣。想要自定義這個(gè)手勢識(shí)別器——例如码党,想要在一個(gè)不同視圖中安裝它來適當(dāng)?shù)奶幚砟愕膽?yīng)用的視圖層級事件——使用playbackGestureRecognizer
屬性德崭。
通常情況下,一個(gè)應(yīng)用不需要直接控制Live Photo的播放揖盘。在某些情況下眉厨,它可以使用一個(gè)簡短的動(dòng)畫來標(biāo)示用戶這個(gè)圖片是一個(gè)Live Photo。想要這樣做兽狭,使用- (void)startPlaybackWithStyle:(PHLivePhotoViewPlaybackStyle)playbackStyle;
方法并傳入PHLivePhotoViewPlaybackStyleHint
類型參數(shù)憾股。
提示
想要在網(wǎng)頁上展示Live Photo的內(nèi)容,請使用LivePhotosKit JS框架箕慧。
二服球、內(nèi)容
1. 選擇一個(gè)Live Photo來展示
@property(readwrite, nonatomic, strong) PHLivePhoto *livePhoto;
視圖中展示的Live Photo。
2. 播放管理
@property(readonly, nonatomic, strong) UIGestureRecognizer *playbackGestureRecognizer;
一個(gè)控制視圖中Live Photo播放的點(diǎn)手勢識(shí)別器颠焦。
Live Photo視圖自動(dòng)創(chuàng)建并安裝這個(gè)手勢識(shí)別器斩熊。使用這個(gè)屬性來自定義手勢識(shí)別器的行為。例如伐庭,你可以用它在代理方法中影響他如何同其他手勢識(shí)別器交互粉渠,或者安裝他在其他的視圖中來確保在你的應(yīng)用的視圖層級中適當(dāng)?shù)奶幚硎录?/p>
@property(readwrite, nonatomic, assign, getter=isMuted) BOOL muted;
是否禁止播放Live Photo的音頻內(nèi)容分冈。
這個(gè)屬性的默認(rèn)值為NO
,表示視圖會(huì)隨著Live Photo的動(dòng)作播放音頻內(nèi)容渣叛。這個(gè)屬性的值變?yōu)?code>YES則表示會(huì)播放動(dòng)作但是不會(huì)播放音頻丈秩。
@property(readwrite, nonatomic, assign) float audioVolume;
Live Photo的動(dòng)作內(nèi)容播放時(shí)的聲音大小。
這個(gè)屬性的值必須在0.0
到1.0
之間淳衙。這個(gè)值為1.0
時(shí)(默認(rèn)值)將以最大音量(相對于系統(tǒng)音量的最大音量)來播放Live Photo的音頻蘑秽。這個(gè)值為0.0
時(shí)相當(dāng)于設(shè)置muted
屬性為YES
。
3. 響應(yīng)播放事件
@property(readwrite, nonatomic, weak) id<PHLivePhotoViewDelegate> delegate;
當(dāng)Live Photo開始播放或結(jié)束播放時(shí)通知的對象箫攀。
4. 手動(dòng)播放Live Photo內(nèi)容
- (void)startPlaybackWithStyle:(PHLivePhotoViewPlaybackStyle)playbackStyle;
在視圖中開始播放Live Photo的內(nèi)容肠牲。
使用playbackStyle
屬性來選擇播放Live Photo的整個(gè)動(dòng)作和聲音內(nèi)容還是只播放簡短的一部分。
通常情況下靴跛,一個(gè)應(yīng)用不需要直接控制播放缀雳,因?yàn)橐粋€(gè)Live Photo視圖提供交互式播放控制。當(dāng)沒有恰當(dāng)?shù)慕换ゲシ艜r(shí)使用這個(gè)方法——例如梢睛,一個(gè)簡短的動(dòng)畫表明一個(gè)視圖的內(nèi)容是一個(gè)Live Photo肥印。
PHLivePhotoViewPlaybackStyle
typedef NS_ENUM(NSInteger, PHLivePhotoViewPlaybackStyle) {
PHLivePhotoViewPlaybackStyleUndefined = 0, // 這個(gè)值對用戶無效
PHLivePhotoViewPlaybackStyleFull, // 播放Live Photo的整個(gè)動(dòng)作和聲音內(nèi)容,包括開始和結(jié)束的過渡效果绝葡。
PHLivePhotoViewPlaybackStyleHint, // 只播放Live Photo的一段簡短的動(dòng)作內(nèi)容深碱,沒有聲音。
} PHOTOS_ENUM_AVAILABLE_IOS_TVOS(9_1, 10_0);
- (void)stopPlayback;
結(jié)束在視圖中播放的Live Photo內(nèi)容藏畅。
5. 獲取Live Photo的用戶界面圖標(biāo)
+ (UIImage *)livePhotoBadgeImageWithOptions:(PHLivePhotoBadgeOptions)badgeOptions;
返回給定的Live Photo語義選項(xiàng)的圖片圖像敷硅。
使用這個(gè)方法為用戶填充Live Photo界面元素來獲取圖標(biāo)圖像。例如愉阎,你可以使用這個(gè)方法獲取的圖標(biāo)在自一個(gè)自定義資源瀏覽器界面來標(biāo)示出那個(gè)資源是Live Photo而不是普通靜態(tài)圖像绞蹦,或者標(biāo)示用戶選擇分享一個(gè)帶有還是不帶有動(dòng)作和聲音內(nèi)容的Live Photo。
默認(rèn)情況下榜旦,這個(gè)方法返回一個(gè)適合用作模版圖像的純色圖像幽七,你可以在特定背景下對其著色并顯示。(使用UIImage
類創(chuàng)建模版圖像溅呢。)當(dāng)你計(jì)劃使用動(dòng)起來的Live Photo內(nèi)容覆蓋圖標(biāo)時(shí)澡屡,添加PHLivePhotoBadgeOptionsOverContent
選項(xiàng)來獲取一個(gè)圖像(不適用于模版使用)提供額外的背景對比。
typedef NS_OPTIONS(NSUInteger, PHLivePhotoBadgeOptions) {
PHLivePhotoBadgeOptionsOverContent = 1 << 0, // 返回一個(gè)標(biāo)示不選擇動(dòng)作和聲音內(nèi)容的圖標(biāo)
PHLivePhotoBadgeOptionsLiveOff = 1 << 1, // 返回一個(gè)標(biāo)示Live Photo的變量圖標(biāo)
} PHOTOS_ENUM_AVAILABLE_IOS_TVOS(9_1, 10_0);
@property(readonly, nonatomic, strong) NSView *livePhotoBadgeView;
一個(gè)展示Live Photo狀態(tài)的視圖藕届。
PHLivePhotoView使用這個(gè)子視圖來展示圖標(biāo),這個(gè)圖標(biāo)標(biāo)示了Live Photo內(nèi)容是否存在或者狀態(tài)亭饵。Photos管理在badge view上展示的內(nèi)容休偶,所以你不需要對這個(gè)視圖的內(nèi)容做任何事情——相反,這個(gè)屬性提供訪問badge view辜羊,所以如果需要的話你可以改變它在你的視圖中的顯示層級踏兜。例如词顾,如果你在一個(gè)scroll view中展示一個(gè)Live Photo視圖,你可以移動(dòng)這個(gè)badge view以便于scroll view滑動(dòng)時(shí)保持它的位置不動(dòng)碱妆。