相册

作者: Show撑腰 | 来源:发表于2016-01-10 20:05 被阅读0次

    #import "AssetsLibrary/AssetsLibrary.h"

    @interfaceBigPictureViewController()

    /**图片*/

    @property(nonatomic,weak)UIImageView*imageView;

    /**相册库*/

    @property(nonatomic,strong)ALAssetsLibrary*library;

    @end

    @implementationBigPictureViewController

    - (ALAssetsLibrary*)library

    {

    if(!_library) {

    _library= [[ALAssetsLibraryalloc]init];

    }

    return_library;

    }

    - (IBAction)back {

    [selfdismissViewControllerAnimated:YEScompletion:nil];

    }

    - (void)viewDidLoad {

    [superviewDidLoad];

    //滚动控件

    UIScrollView*scrollView = [[UIScrollViewalloc]init];

    scrollView.frame= [UIScreenmainScreen].bounds;

    scrollView.backgroundColor= [UIColorblackColor];

    scrollView.delegate=self;

    [self.viewinsertSubview:scrollViewatIndex:0];

    //图片

    UIImageView*imageView = [[UIImageViewalloc]init];

    [imageViewsd_setImageWithURL:[NSURLURLWithString:self.topic.image1]];

    [scrollViewaddSubview:imageView];

    self.imageView= imageView;

    //图片的尺寸

    imageView.x=0;

    imageView.width=XMGScreenW;

    imageView.height=self.topic.height* imageView.width/self.topic.width;

    if(imageView.height>XMGScreenH) {//图片过长

    imageView.y=0;

    scrollView.contentSize=CGSizeMake(0, imageView.height);

    }else{//图片居中显示

    imageView.centerY=XMGScreenH*0.5;

    }

    //伸缩

    CGFloatmaxScale =self.topic.height/ imageView.height;

    if(maxScale >1.0) {

    scrollView.maximumZoomScale= maxScale;

    }

    }

    staticNSString*constXMGGroupNameKey =@"GroupNameKey";

    staticNSString*constXMGDefaultGroupName =@"XXXXXXXX";

    - (NSString*)groupName

    {

    //先从沙盒中取得名字

    NSString*groupName = [[NSUserDefaultsstandardUserDefaults]stringForKey:XMGGroupNameKey];

    if(groupName ==nil) {//沙盒中没有存储任何文件夹的名字

    groupName =XMGDefaultGroupName;

    //存储名字到沙盒中

    [[NSUserDefaultsstandardUserDefaults]setObject:groupNameforKey:XMGGroupNameKey];

    [[NSUserDefaultsstandardUserDefaults]synchronize];

    }

    returngroupName;

    }

    - (IBAction)save

    {

    //获得文件夹的名字

    __blockNSString*groupName = [selfgroupName];

    // self的弱引用

    XMGWeakSelf;

    //图片库

    __weakALAssetsLibrary*weakLibrary =self.library;

    //创建文件夹

    [weakLibraryaddAssetsGroupAlbumWithName:groupNameresultBlock:^(ALAssetsGroup*group) {

    if(group) {//新创建的文件夹

    //添加图片到文件夹中

    [weakSelfaddImageToGroup:group];

    }else{//文件夹已经存在

    [weakLibraryenumerateGroupsWithTypes:ALAssetsGroupAllusingBlock:^(ALAssetsGroup*group,BOOL*stop) {

    NSString*name = [groupvalueForProperty:ALAssetsGroupPropertyName];

    if([nameisEqualToString:groupName]) {//是自己创建的文件夹

    //添加图片到文件夹中

    [weakSelfaddImageToGroup:group];

    *stop =YES;//停止遍历

    }elseif([nameisEqualToString:@"Camera Roll"]) {

    //文件夹被用户强制删除了

    groupName = [groupNamestringByAppendingString:@" "];

    //存储新的名字

    [[NSUserDefaultsstandardUserDefaults]setObject:groupNameforKey:XMGGroupNameKey];

    [[NSUserDefaultsstandardUserDefaults]synchronize];

    //创建新的文件夹

    [weakLibraryaddAssetsGroupAlbumWithName:groupNameresultBlock:^(ALAssetsGroup*group) {

    //添加图片到文件夹中

    [weakSelfaddImageToGroup:group];

    }failureBlock:nil];

    }

    }failureBlock:nil];

    }

    }failureBlock:nil];

    }

    /**

    *添加一张图片到某个文件夹中

    */

    - (void)addImageToGroup:(ALAssetsGroup*)group

    {

    __weakALAssetsLibrary*weakLibrary =self.library;

    //需要保存的图片

    CGImageRefimage =self.imageView.image.CGImage;

    //添加图片到【相机胶卷】

    [weakLibrarywriteImageToSavedPhotosAlbum:imagemetadata:nilcompletionBlock:^(NSURL*assetURL,NSError*error) {

    [weakLibraryassetForURL:assetURLresultBlock:^(ALAsset*asset) {

    //添加一张图片到自定义的文件夹中

    [groupaddAsset:asset];

    [SVProgressHUDshowSuccessWithStatus:@"保存成功!"];

    }failureBlock:nil];

    }];

    }

    - (void)getAllPhotos

    {

    ALAssetsLibrary*library = [[ALAssetsLibraryalloc]init];

    //遍历所有的文件夹,一个ALAssetsGroup对象就代表一个文件夹

    [libraryenumerateGroupsWithTypes:ALAssetsGroupAllusingBlock:^(ALAssetsGroup*group,BOOL*stop) {

    //遍历文件夹内的所有多媒体文件(图片、视频),一个ALAsset对象就代表一张图片

    [groupenumerateAssetsUsingBlock:^(ALAsset*result,NSUIntegerindex,BOOL*stop) {

    //缩略图

    XMGLog(@"%@", [UIImage imageWithCGImage:result.thumbnail]);

    //获得原始图片

    //XMGLog(@"%@", [UIImage imageWithCGImage:result.defaultRepresentation.fullResolutionImage]);

    }];

    }failureBlock:nil];

    }

    //自定义照相机: AVCaptureSession

    //通过拍照获得一张图片

    //UIImagePickerController *picker = [[UIImagePickerController alloc] init];

    //picker.sourceType = UIImagePickerControllerSourceTypeCamera;

    //[self presentViewController:picker animated:YES completion:nil];

    //从相册中挑选一张图片

    //UIImagePickerController *picker = [[UIImagePickerController alloc] init];

    //picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

    //[self presentViewController:picker animated:YES completion:nil];

    #pragma mark -

    - (UIView*)viewForZoomingInScrollView:(UIScrollView*)scrollView

    {

    returnself.imageView;

    }

    @end

    相关文章

      网友评论

          本文标题:相册

          本文链接:https://www.haomeiwen.com/subject/lvuqkttx.html