我正在研究PHPhotoLibrary,在那裏創建相冊並將圖像保存到其中。但是,保存到相冊的圖像也出現在相機膠捲以及我的照片流中。在自定義相冊中顯示照片,但不在相機角色/我的照片流中顯示照片
我搜索了很多,沒有發現實質性內容。
我寫了一個功能如下,刪除相機角色和我的照片流的照片。
-(void)cleanUpCameraRoll:(NSString *)localID
{
PHFetchResult *newlyCreatedAssetFetchResult = [PHAsset fetchAssetsWithLocalIdentifiers:@[localID] options:nil];
PHAsset *newlyCreatedAsset = [newlyCreatedAssetFetchResult firstObject];
//Get Camera Roll
PHFetchResult *result = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
subtype:PHAssetCollectionSubtypeSmartAlbumUserLibrary
options:nil];
PHAssetCollection *cameraRollCollection = result.firstObject;
//Get Photo Stream Album - PHAssetCollectionSubtypeAlbumMyPhotoStream
PHFetchResult *result2 = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
subtype:PHAssetCollectionSubtypeAlbumMyPhotoStream
options:nil];
PHAssetCollection *photoStreamCollection = result2.firstObject;
//*********************************
PHFetchResult *assetsCameraRoll = [PHAsset fetchAssetsInAssetCollection:cameraRollCollection options:nil];
for (PHAsset *asset in assetsCameraRoll) {
if ([asset.localIdentifier isEqualToString:localID]) {
DebugLog(@"Got newly created asset in camera roll");
break;
}
}
PHFetchResult *assetsPhotoStream = [PHAsset fetchAssetsInAssetCollection:photoStreamCollection options:nil];
for (PHAsset *asset in assetsPhotoStream) {
if ([asset.localIdentifier isEqualToString:localID]) {
DebugLog(@"Got newly created asset in photo stream");
break;
}
}
//*********************************
NSError *error;
[[PHPhotoLibrary sharedPhotoLibrary] performChangesAndWait:^{
//Remove from Camera Roll
PHAssetCollectionChangeRequest *changeRequest1 = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:cameraRollCollection assets:newlyCreatedAssetFetchResult];
[changeRequest1 removeAssets:@[newlyCreatedAsset]];
PHAssetCollectionChangeRequest *changeRequest2 = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:photoStreamCollection assets:newlyCreatedAssetFetchResult];
[changeRequest2 removeAssets:@[newlyCreatedAsset]];
} error:&error];
}
此代碼執行好了,但我仍然看到的圖像在兩個地方。
所以,我得出的結論是,相冊只是照片的邏輯分組,並且所有內容都位於相機角色和/或我的照片流中。是這樣嗎?
如果是,是否有任何方法(至少)使其隱藏在相機膠捲/照片流中?我想讓照片僅在我的自定義相冊中可見。
從互聯網你節省?如果是這樣,您可以使用圖像元數據從相機膠捲中找到。 – karthikeyan
謝謝Karthik,您的回覆。我正在獲取圖像信息。但是,我的問題是,我是否可以停止在相機膠捲中顯示圖像。 –
如果是自定義相機膠捲視圖,則可以將其停止。有很多工作可以證實,我們之前做過類似的工作,喜歡從某張專輯停止播放。 – karthikeyan