版本記錄
| 版本號(hào) | 時(shí)間 |
|---|---|
| V1.0 | 2018.02.07 |
前言
Photos框架使用Photos應(yīng)用管理的圖片和視頻資源,包括來(lái)自iCloud Photo Library和Live Photos的圖片和視頻資源。 異步獲取并緩存全尺寸資源或縮略圖,修改內(nèi)容并將修訂同步到多個(gè)設(shè)備。接下來(lái)幾篇我們就一起看一下這個(gè)框架。
Overview
下面先看一下該框架的基本信息。

下面看一下該框架的基本結(jié)構(gòu)。

在iOS和MacOS中,Photos框架提供了支持為照片應(yīng)用程序構(gòu)建照片編輯擴(kuò)展的類(lèi)。 在iOS和tvOS中,Photos框架還可以直接訪問(wèn)由Photos應(yīng)用管理的照片和視頻資產(chǎn),包括iCloud Photo Library。 使用此框架檢索資源以進(jìn)行顯示和回放,編輯其圖像或視頻內(nèi)容,或使用相冊(cè),moments和iCloud Shared Albums等資源集合。
Features & Concepts
在iOS和tvOS中,Photos框架包含許多與用戶(hù)的照片庫(kù)直接相關(guān)的功能。
-
Fetching objects and requesting changes.獲取對(duì)象并請(qǐng)求更改。 Photos框架模型類(lèi)(PHAsset,PHAssetCollection,和PHCollectionList)的實(shí)例表示用戶(hù)在Photos應(yīng)用中使用的項(xiàng)目:資源(圖像,視頻和Live Photos),資源集合(如專(zhuān)輯或
moments)以及 收藏列表(例如相冊(cè)文件夾或moment clusters)。 這些對(duì)象是只讀的,不可變的,只包含元數(shù)據(jù)。
您通過(guò)獲取感興趣的資源和集合,然后使用這些對(duì)象來(lái)獲取需要使用的數(shù)據(jù)。 要進(jìn)行更改,您可以創(chuàng)建更改請(qǐng)求對(duì)象,并將其明確提交給共享的PHPhotoLibrary對(duì)象。 這種架構(gòu)使得從多個(gè)線程或多個(gè)應(yīng)用程序和應(yīng)用程序擴(kuò)展使用相同的資產(chǎn)變得簡(jiǎn)單,安全和高效。
Change observing.改變觀察。使用共享的PHPhotoLibrary對(duì)象為您獲取的資產(chǎn)和集合注冊(cè)更改處理程序。只要其他應(yīng)用或設(shè)備更改資產(chǎn)的內(nèi)容或元數(shù)據(jù)或集合中的資產(chǎn)列表,Photos就會(huì)告訴您的應(yīng)用。 PHChange對(duì)象在每次更改之前和之后提供有關(guān)對(duì)象狀態(tài)的信息,使用易于更新集合視圖或類(lèi)似接口的語(yǔ)義。
Support for Photos app features.支持Photos應(yīng)用功能。使用PHCollectionList類(lèi)查找相應(yīng)于Photos應(yīng)用程序中的Moments層次結(jié)構(gòu)的資源。使用PHAsset類(lèi)可以識(shí)別連拍照片,全景照片和高幀頻視頻。啟用
iCloud Photo Library后,Photos框架中的資源和集合反映了同一個(gè)iCloud帳戶(hù)上所有設(shè)備上的可用內(nèi)容。Asset and thumbnail loading and caching.資產(chǎn)和縮略圖加載和緩存。使用PHImageManager類(lèi)來(lái)請(qǐng)求指定大小的資源的圖像,或使用視頻資源的AV Foundation對(duì)象。 根據(jù)您的規(guī)范Photos框架自動(dòng)下載或生成圖像,緩存它們以便快速重用。為了提高大量資產(chǎn)的性能(例如,在使用縮略圖填充集合視圖時(shí)),PHCachingImageManager子類(lèi)會(huì)添加批量預(yù)加載。
Asset content editing.資產(chǎn)內(nèi)容編輯。 PHAsset和 PHAssetChangeRequest類(lèi)定義方法來(lái)請(qǐng)求照片或視頻內(nèi)容進(jìn)行編輯,并將您的編輯提交到照片庫(kù)。為了支持在不同應(yīng)用和擴(kuò)展程序之間進(jìn)行編輯的連續(xù)性,Photos會(huì)使用描述上次編輯的 PHAdjustmentData對(duì)象來(lái)保存每個(gè)資源的當(dāng)前版本和先前版本。如果您的應(yīng)用程序支持先前編輯的調(diào)整數(shù)據(jù),則可以允許用戶(hù)恢復(fù)或更改編輯。
在iOS和MacOS中,Photos框架提供了用于開(kāi)發(fā)照片編輯擴(kuò)展以供在Photos應(yīng)用程序中使用的類(lèi),然而,擴(kuò)展的主要類(lèi)必須采用由PhotosUI框架定義的PHContentEditingController協(xié)議。有關(guān)Photos應(yīng)用程序擴(kuò)展程序的詳細(xì)信息,請(qǐng)參閱PhotosUI和 App Extension Programming Guide。
Topics
1. Interacting with the Photos Library
您可以使用共享照片庫(kù)對(duì)象來(lái)獲取用戶(hù)對(duì)您的應(yīng)用程序的訪問(wèn)權(quán)限,以訪問(wèn)照片內(nèi)容,對(duì)資產(chǎn)和收藏進(jìn)行更改,以及注冊(cè)照片庫(kù)更改時(shí)發(fā)送的更新消息。
-
PHPhotoLibrary
- 管理對(duì)用戶(hù)照片庫(kù)的訪問(wèn)和更改的共享對(duì)象。
2. Retrieving and Examining Assets
這些模型類(lèi)表示照片庫(kù)的內(nèi)容:資產(chǎn)和集合。 這些類(lèi)的實(shí)例是只讀的,不可變的,只包含元數(shù)據(jù)。 要使用資產(chǎn)和集合,可以使用這些類(lèi)來(lái)獲取與指定查詢(xún)匹配的一組對(duì)象。
-
- 照片庫(kù)中的圖像,視頻或
Live Photo的表示形式。
- 照片庫(kù)中的圖像,視頻或
-
- 照片資源分組的表示形式,例如moment,用戶(hù)創(chuàng)建的相冊(cè)或智能相冊(cè)。
-
- 包含照片資產(chǎn)集合的組的表示形式,例如即時(shí)年份或用戶(hù)創(chuàng)建的相冊(cè)文件夾。
-
- 照片資源收藏和收藏列表的抽象超類(lèi)。
-
- Photos模型對(duì)象(資產(chǎn)和集合)的抽象超類(lèi)。
-
- 從Photos提取方法返回的資產(chǎn)或集合的有序列表。
-
- 一組選項(xiàng),用于影響當(dāng)您提取素材資源或集合對(duì)象時(shí)Photos返回的結(jié)果的過(guò)濾,排序和管理。
3. Loading Asset Content
使用這些類(lèi)可以請(qǐng)求與Photos資產(chǎn)相關(guān)聯(lián)的圖像,視頻或 Live Photo內(nèi)容。 Photos 自動(dòng)下載或生成您指定規(guī)格的圖像,緩存他們以便快速重用。 您還可以請(qǐng)求預(yù)先加載批量圖片,以便使用大量資產(chǎn)實(shí)現(xiàn)更快的性能。
-
- 提供檢索或生成預(yù)覽縮略圖和與Photos資產(chǎn)相關(guān)的全尺寸圖像或視頻數(shù)據(jù)的方法。
-
- 提供檢索或生成預(yù)覽縮略圖和與Photos資產(chǎn)相關(guān)聯(lián)的全尺寸圖像或視頻數(shù)據(jù)的方法,針對(duì)批量預(yù)加載大量資產(chǎn)進(jìn)行了優(yōu)化。
-
- 影響您從圖片管理器請(qǐng)求的照片資源的靜態(tài)圖像表示的一組選項(xiàng)。
-
- 影響您從圖像管理器請(qǐng)求的視頻資產(chǎn)數(shù)據(jù)傳送的一組選項(xiàng)。
-
- 影響您從圖片管理器請(qǐng)求的Live Photo資源傳遞的一組選項(xiàng)。
-
- Live Photo的可顯示表示 - 包含拍攝前后瞬間的動(dòng)態(tài)和聲音的圖片。
4. Requesting Changes
要更改資產(chǎn)或集合,請(qǐng)創(chuàng)建描述您的編輯的更改請(qǐng)求對(duì)象,并將其明確提交到Photos庫(kù)。 這種架構(gòu)使得從多個(gè)線程或多個(gè)應(yīng)用程序和應(yīng)用程序擴(kuò)展使用相同的資產(chǎn)變得簡(jiǎn)單,安全和高效。
-
- 請(qǐng)求創(chuàng)建,刪除,更改元數(shù)據(jù)或編輯Photos資產(chǎn)的內(nèi)容,以用于照片庫(kù)更改區(qū)塊。
-
PHAssetCollectionChangeRequest
- 創(chuàng)建,刪除或修改Photos庫(kù)資源集合的請(qǐng)求,用于照片庫(kù)更改塊中。
-
- 創(chuàng)建,刪除或修改照片收藏列表的請(qǐng)求,用于照片庫(kù)更改區(qū)塊。
-
- 表示尚未由更改請(qǐng)求創(chuàng)建的照片資產(chǎn)或集合對(duì)象的只讀代理。
5. Editing Asset Content
在應(yīng)用程序或擴(kuò)展程序中使用這些類(lèi)來(lái)訪問(wèn)資產(chǎn)數(shù)據(jù)進(jìn)行編輯,并將編輯提交到Photos庫(kù)。 Photos管理描述每個(gè)編輯的資產(chǎn)和調(diào)整數(shù)據(jù)的多個(gè)版本,以便您的應(yīng)用或擴(kuò)展程序可以允許用戶(hù)恢復(fù)或繼續(xù)處理先前進(jìn)行的編輯,即使在不同的設(shè)備上。
要為Photos應(yīng)用構(gòu)建照片編輯擴(kuò)展程序,請(qǐng)將這些類(lèi)與PhotosUI框架一起使用。
-
- 提供關(guān)于和訪問(wèn)要編輯的資產(chǎn)的圖像,視頻或Live Photo內(nèi)容的信息的容器。
-
- 您向其提供編輯照片資源的照片,視頻或Live Photo內(nèi)容結(jié)果的容器。
-
- 描述對(duì)資產(chǎn)的照片,視頻或Live Photo內(nèi)容所做的修改,使您的應(yīng)用可以重建或恢復(fù)之前編輯會(huì)話(huà)的效果。
-
PHContentEditingInputRequestOptions
- 當(dāng)您請(qǐng)求編輯Photos資源的內(nèi)容時(shí),影響圖像或視頻數(shù)據(jù)傳送的一組選項(xiàng)。
-
- 用于修改Live Photo的照片,視頻和音頻內(nèi)容的編輯會(huì)話(huà)。
-
- 在編輯上下文中為L(zhǎng)ive Photo的單個(gè)幀提供圖像內(nèi)容的容器。
6. Observing Changes
只要應(yīng)用中的其他應(yīng)用,其他設(shè)備或代碼更改資產(chǎn)的內(nèi)容或元數(shù)據(jù)或集合中的資產(chǎn)列表,Photos就會(huì)告訴您的應(yīng)用。 這些對(duì)象在每次更改之前和之后提供有關(guān)對(duì)象狀態(tài)的信息,使您可以輕松更新用戶(hù)界面以進(jìn)行匹配。
-
- 您可以實(shí)現(xiàn)一個(gè)協(xié)議,以通知Photos庫(kù)中發(fā)生的更改。
-
- Photos庫(kù)中發(fā)生的更改的說(shuō)明。
-
- 描述資產(chǎn)或集合對(duì)象中發(fā)生的更改。
-
- 提取結(jié)果中列出的一組資產(chǎn)或集合對(duì)象中發(fā)生的更改的說(shuō)明。
7. Working with Asset Resources
一個(gè)或多個(gè)資產(chǎn)資源對(duì)象代表每個(gè)Photos資產(chǎn)的基礎(chǔ)數(shù)據(jù)存儲(chǔ)。 使用這些對(duì)象直接使用這些資源,例如備份和恢復(fù)資源。
-
- 與照片庫(kù)中的照片,視頻或Live Photo資產(chǎn)相關(guān)聯(lián)的基礎(chǔ)數(shù)據(jù)資源。
-
- 從底層數(shù)據(jù)資源創(chuàng)建新Photos資源的請(qǐng)求,用于照片庫(kù)更改區(qū)塊。
-
PHAssetResourceCreationOptions
- 一組影響從底層資源創(chuàng)建新Photos資產(chǎn)的選項(xiàng)。
-
- 提供訪問(wèn)與Photos 資源相關(guān)聯(lián)的資源的底層數(shù)據(jù)存儲(chǔ)的方法。
-
- 影響您從資產(chǎn)資源管理者請(qǐng)求的基礎(chǔ)資產(chǎn)數(shù)據(jù)傳送的一組選項(xiàng)。
8. Classes
9. Reference
-
- 本文檔介紹了在整個(gè)Photos框架中使用的常量。
后記
本篇已結(jié)束,后面更精彩~~~
