スクリーンショットを作成するボタンを備えたアプリを構築しています。このアプリで作成したすべてのスクリーン ショットを、同じカスタム名のアプリ アルバムに保存したいと考えています。アプリを初めて開いたときに、次のコードでアルバムを作成する方法を既に知っています。次のような写真フレームワークでアルバムを作成しています。
-(void)createAppAlbum
{
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetCollectionChangeRequest *changeRequest = [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:@"App Album Name"];
albumPlaceholder = changeRequest.placeholderForCreatedAssetCollection;
}
completionHandler:^(BOOL success, NSError *error) {
if (success) {
fetchResult = [PHAssetCollection fetchAssetCollectionsWithLocalIdentifiers:@[albumPlaceholder.localIdentifier] options:nil];
assetCollection = fetchResult.firstObject;
}
else {
NSLog(@"Error creating album: %@", error);}
}];
}
したがって、私のアプリは「App Album Name」という名前のアルバムを作成します。次のようなボタンを使用して、スクリーンショットを新しいアルバムに保存できます。
-(IBAction)screenshot:(id)sender
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)])
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, NO, [UIScreen mainScreen].scale);
else
UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{
PHAssetChangeRequest *assetChangeRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
PHAssetCollectionChangeRequest *assetCollectionChangeRequest = [PHAssetCollectionChangeRequest changeRequestForAssetCollection:assetCollection];
[assetCollectionChangeRequest addAssets:@[[assetChangeRequest placeholderForCreatedAsset]]];
} completionHandler:^(BOOL success, NSError *error) {
if (!success) {
NSLog(@"Error creating asset: %@", error);
}
}];
}
このviewControllerを離れて後で戻る場合に備えて、すでに作成したアルバムを見つけて、同じアルバムに別のスクリーンショットを保存したいのは、このView Controllerに入るたびに新しいスクリーンショットを作成したくないからです。
だから私の質問は、最初に作成したアルバムを名前で取得し、新しいスクリーンショットを保存するにはどうすればよいかということです.