我想知道如何复制PHAsset
并保留照片的上下文。例如,如果照片位于特定相册中,我希望副本位于原始相邻的相同相册中。如果可能,将保留编辑历史记录,允许用户根据需要将该副本还原为原始文件。
可以实现共享表并共享图像,这将提供保存图像的选项,但这不是真正的重复。保存图像会将其放在所有照片的末尾。如果我创建一个新资产,通过creationRequestForAssetFromImage
从我现有的资产中提供图像,那么它也会放在所有照片的末尾。
如何以编程方式复制给定的PHAsset
,并保留其在相册层次结构中的位置?
答案 0 :(得分:0)
要设置新创建的资源的元数据属性,请使用 更改请求的相应属性(在修改中列出) 资产)。稍后在同一更改中引用新创建的资产 阻止或在更改块完成后,使用 placeholderForCreatedAsset属性,用于检索占位符对象。
致电creationRequestForAssetFromImage
,然后使用您要复制的PHAssetChangeRequest
在PHAsset
上设置相应的元数据。
let request = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
request.creationDate = copiedAsset.creationDate
request.location = copiedAsset.location