如何从 PHAssetCollection 中删除图像?
Posted
技术标签:
【中文标题】如何从 PHAssetCollection 中删除图像?【英文标题】:How to delete image from PHAssetCollection? 【发布时间】:2016-02-05 07:16:08 【问题描述】:我的应用程序中有 PHAssetCollection,其中包含所有相册应用程序。
问题是我可以从所有照片中删除图像,但不能从相机胶卷、收藏夹、屏幕截图等中删除图像。
请帮我从 PHAssetCollection 中删除。
这是我删除图像的代码。
// Enable the trash button if the asset can be deleted.
BOOL isTrashable = NO;
if (self.assetCollection)
isTrashable = [self.assetCollection canPerformEditOperation:PHCollectionEditOperationRemoveContent];
else
isTrashable = [self.asset canPerformEditOperation:PHAssetEditOperationDelete];
self.trashButton.enabled = isTrashable;
[self updateImage];
【问题讨论】:
【参考方案1】:来自Apple developer forum的参考
[[phphotoLibrary sharedPhotoLibrary] performChanges:^
PHAssetCollectionChangeRequest *request = [PHAssetCollectionChangeRequest
changeRequestForAssetCollection:self.myAlbum
assets:self.albumAssetsFetchResult];
[request removeAssets:@[asset]];
completionHandler:^(BOOL success, NSError *error)
NSLog(@"Finished removing asset from the album. %@", (success ? @"Success" : error));
];
或
// Delete asset from library
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^
[PHAssetChangeRequest deleteAssets:@[self.asset]];
completionHandler:completionHandler];
确保 isTrashable = YES
【讨论】:
developer.apple.com/library/ios/samplecode/UsingPhotosFramework/…(您必须是注册开发人员才能访问此代码)我使用此代码请让我建议我必须将上面的代码放在哪里@Vvk Aghera ==>> 资产:self.albumAssetsFetchResult;你能在这份声明中告诉我我必须分配哪些资产吗? 请你解决这个问题。您的答案已经在演示项目中,但您能告诉我为什么它不起作用吗? @MiteshDobareeya 请在 AAPLAssetViewComtroller.M 行号:265--278 中查看演示代码。它已经工作了。 但它只允许您从所有照片中删除图像。如果您想从相机胶卷中删除图像,则不允许删除【参考方案2】:注释上面的代码并设置
self.trashbutton.enable=YES;
从相机角色中删除的图像也从所有照片中删除。
【讨论】:
以上是关于如何从 PHAssetCollection 中删除图像?的主要内容,如果未能解决你的问题,请参考以下文章
如何从 PHAssetCollection 正确获取自定义专辑
使用 PHFetchOptions.predicate 从 PHAssetCollection 获取 PHAsset 的问题
如何编辑或重命名 PHAssetCollection LocalizedTitle?
何时使用 PHAsset、PHCollection、PHAssetCollection 和 PHCollectionList