zoukankan      html  css  js  c++  java
  • iOS调用相册

    对于ios调用相册,首先要确定但前场景就是程序运行的场景,如果不是,需要讲场景添加到当前场景

    获取当前场景并将场景添加到当前场景

      

    RootViewController* vc = (RootViewController*)viewController;

    UIViewController *vcNow = [vc getCurrentVC];
    [vcNow.view addSubview:vc.view];
    UIImageView *iv = [[UIImageView alloc] initWithImage:[UIImage imageNamed:(@"res/CSres/public/publicUI/public_head.png")]];
    [vc setHeadPicture:iv];

    //获取当前场景代码

    - (UIViewController *)getCurrentVC

    {

        UIViewController *result = nil;

        

        UIWindow * window = [[UIApplication sharedApplication] keyWindow];

        if (window.windowLevel != UIWindowLevelNormal)

        {

            NSArray *windows = [[UIApplication sharedApplication] windows];

            for(UIWindow * tmpWin in windows)

            {

                if (tmpWin.windowLevel == UIWindowLevelNormal)

                {

                    window = tmpWin;

                    break;

                }

            }

        }

        

        UIView *frontView = [[window subviews] objectAtIndex:0];

        id nextResponder = [frontView nextResponder];

        

        if ([nextResponder isKindOfClass:[UIViewController class]])

            result = nextResponder;

        else

            result = window.rootViewController;

        

        return result;

    }

    //获取当前场景代码//////

    调用相册::///RootViewController(方法中)

    - (void) setHeadPicture:(UIImageView*) iv

    {

        self.imageV = iv;

        [iv release];

        [self.view addSubview:self.imageV];

        

        

        NSLog(@"%s","setHeadPicture");

        UIImagePickerController *pickerImage = [[UIImagePickerController alloc] init];

        if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

            pickerImage.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;

    //        pickerImage.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

            pickerImage.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:pickerImage.sourceType];

        }

        pickerImage.delegate = self;

        pickerImage.allowsEditing = NO;

        [self presentModalViewController:pickerImage animated:YES];

        [pickerImage release];

    }

    添加调用相册的回调(这些方法不需要定义在类中,直接实现)

    //把图片添加到当前view中

    - (void)saveImage:(UIImage *)image {

        //保存

        NSLog(@"%s","saveImage");

        self.imageV.image = image;

    }

    #pragma mark –

    #pragma mark Camera View Delegate Methods

    //点击相册中的图片或者照相机照完后点击use 后触发的方法

    - (void)imagePickerController:(UIImagePickerController *)picker

    didFinishPickingMediaWithInfo:(NSDictionary *)info {

        

        NSLog(@"***info == %@",info);

        

        

        UIImage *image;

        if (picker.sourceType == UIImagePickerControllerSourceTypePhotoLibrary){//如果打开相册

            [self.imagePicker dismissPopoverAnimated:YES];//关掉相册

            image = [[info objectForKey:UIImagePickerControllerOriginalImage] retain];

            NSLog(@"***333%@",image);

        }

        else{//照相机

            [picker dismissModalViewControllerAnimated:YES];//关掉照相机

            image = [[info objectForKey:UIImagePickerControllerEditedImage] retain];

            NSLog(@"***222%@",image);

        }

        

        [picker dismissModalViewControllerAnimated:YES];//关掉照相机

        

        NSLog(@"***111%@",image);

        

        UIImageWriteToSavedPhotosAlbum(image, self, NULL, NULL);

    //保存图片到app  document

        NSData* imageData = UIImagePNGRepresentation(image);

        NSString* documentPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

        NSString* totalPath = [documentPath stringByAppendingPathComponent:@"aabbcc.png"];

        [imageData writeToFile:totalPath atomically:NO];//将图片保存在当前应用程序下的docoment中

        [imageData writeToURL:[NSURL fileURLWithPath:@""] atomically:NO];

        

        NSLog(@"***%@",totalPath);

        

        

    //    [UIImage ]

        //把选中的图片添加到界面中

        [self performSelector:@selector(saveImage:)

                   withObject:image

                   afterDelay:0.5];

    }

    //点击cancel调用的方法

    - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {

        [picker dismissModalViewControllerAnimated:YES];

    }

  • 相关阅读:
    [hosts]在hosts中屏蔽一级域名和二级域名的写法
    [oracle]查询一个表中数据的插入时间
    [Windows Doc]微软官方文档
    [PL]如果天空是黑暗的,那就摸黑生存
    [LVM]创建LVM卷
    [powershell]获取FCID&Port
    [oracle]解决ora-01034 oracle not available
    [GoogleBlog]new-approach-to-china
    [时钟]配置日期时间并同步到硬件
    [rhel]安装oracle11g
  • 原文地址:https://www.cnblogs.com/lx-hhxxttxs/p/4683132.html
Copyright © 2011-2022 走看看