我想以編程方式從一個重複的相冊中刪除資源(照片不是)。我可以使用照片框架刪除相冊如何從相冊中刪除資產而不從照片應用中刪除資產/照片?
我想知道如何從相冊中刪除資產,而不從照片應用中完全刪除它。有多個地方我想要使用此,例如將資產從一個專輯移動到另一個,等
專輯是可編輯的,因爲我已經創建它們。
有沒有辦法在iOS 6或iOS 7的設備上做到這一點?
我想以編程方式從一個重複的相冊中刪除資源(照片不是)。我可以使用照片框架刪除相冊如何從相冊中刪除資產而不從照片應用中刪除資產/照片?
我想知道如何從相冊中刪除資產,而不從照片應用中完全刪除它。有多個地方我想要使用此,例如將資產從一個專輯移動到另一個,等
專輯是可編輯的,因爲我已經創建它們。
有沒有辦法在iOS 6或iOS 7的設備上做到這一點?
您可以將該圖像的imageData
設置爲零,這樣您就可以刪除圖像。
ALAssetsLibrary *lib = [ALAssetsLibrary new];
[lib enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop)
{
if(group == nil)
{
return ;
}
if([[group valueForProperty:ALAssetsGroupPropertyName] isEqualToString:@"YourAlbumNam"])
{
[group enumerateAssetsUsingBlock:^(ALAsset *asset, NSUInteger index, BOOL *stop)
{
if(asset.isEditable)
{
if([[asset valueForProperty:ALAssetPropertyAssetURL] isEqual:yourAssetURL])
{
[asset setImageData:nil metadata:nil completionBlock:^(NSURL *assetURL, NSError *error)
{
// Check for error
}];
}
}
}];
}
failureBlock:^(NSError *error)
{
}];
在iOS 8及更高版本中,您可以使用以下代碼從相冊中刪除照片,而不從照片應用中完全刪除照片。如果它是有幫助的人 https://developer.apple.com/library/prerelease/ios/documentation/Photos/Reference/PHAssetCollectionChangeRequest_Class/index.html
斯威夫特4版Tgiri的回答:
// you want to pass in your asset collection and asset
let album: PHAssetCollection
let asset: PHAsset
PHPhotoLibrary.shared().performChanges({
guard let albumChangeRequest = PHAssetCollectionChangeRequest(for: album) else { return }
let fastEnumeration = NSArray(array: [asset])
albumChangeRequest.removeAssets(fastEnumeration)
}, completionHandler: { success, error in
if success {
print("removed")
} else {
print("not removed")
}
})
我不想刪除資產
的代碼在下面的鏈接提供。我只想從相冊中刪除它。它應該存在於相機膠捲 – 2015-02-07 04:55:27
@ShravyaBoggarapu:它應該存在於相機膠捲中,我只是將其從相冊中刪除。你有沒有試過這個代碼? – 2015-02-07 06:22:50
它不工作。並且檢索到的資產不可編輯,這就是爲什麼它不會進一步發展。 – 2016-06-02 13:18:18