【发布时间】:2015-10-13 19:24:33
【问题描述】:
我正在构建一个带有屏幕截图按钮的应用程序。现在,我想将在此应用中制作的所有屏幕截图保存在相同的自定义名称应用相册中。我已经知道如何在第一次使用下面的代码打开该应用程序时创建相册。 我正在使用照片框架创建我的相册,例如:
-(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);}
}];
}
所以我的应用程序创建了名为“应用程序专辑名称”的专辑。 我可以使用以下按钮将我的截图保存在我的新专辑中:
-(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,稍后再回来,我想找到我已经创建的相册,并在同一个相册中保存另一个屏幕截图,因为我不想每次进入这个都创建一个新的视图控制器。
所以我的问题是,我如何获得我第一次按名称创建的专辑,然后保存新的屏幕截图。
【问题讨论】:
-
@Fennelouski - iOS 5,也不使用照片框架..
-
你能解释一下困难是什么吗?创建相册时,您将获得其标识符。从那时起,通过其标识符访问专辑。你有什么困难?
标签: ios objective-c ios8 phphotolibrary