• 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];

    }

  • 相关阅读:
    Html5新增视频功能——video API 事件
    HTML5新增的视频功能——video属性
    jQuery封装的tab组件(可选自动+可选延迟处理+按需加载)
    jQuery封装tab选项卡组件(自定义自动功能和延迟显示功能)
    jQuery对象只能使用jQuery提供的方法,不能使用原生js提供的方法
    语法糖 —— 糖糖糖
    面向对象
    Call to undefined function IlluminateEncryptionopenssl_cipher_iv_length()
    HTTP协议
    功能算法
  • 原文地址:https://www.cnblogs.com/lx-hhxxttxs/p/4683132.html
Copyright © 2020-2023  润新知