UIImagePickerController的一些属性(调照相机或者图片)

这篇博客介绍了如何在iOS应用中使用UIImagePickerController来调用相机和相册。通过导入MobileCoreServices框架,遵循UINavigationControllerDelegate和UIImagePickerControllerDelegate协议,设置sourceType属性,可以实现相机拍照和相册选择图片的功能。在选择完成后,可以通过UIImagePickerControllerDelegate协议的方法处理所选的媒体资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.wpc

1.导框架

添加系统框架

MobileCoreServices.framework

头文件

#import <MobileCoreServices/MobileCoreServices.h>

遵守的协议

<UINavigationControllerDelegate,UIImagePickerControllerDelegate

2.方法

#pragma mark - 点击事件

-(void)btnClick:(UIButton *)btn{

    //UIImagePickerController:里面封装好了调用相机和相册的逻辑,可直接使用。

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

    pc.delegate = self;

    if (btn.tag == 100) {

        //拍照

        //设置资源类型 --> 先要检测要设置的资源类型是否可用

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {

            [pc setSourceType:UIImagePickerControllerSourceTypeCamera];

            //根据开发习惯,UIImagePickerControllerpresent的方式出现

            [self presentViewController:pc animated:YES completion:nil];

            [pc release];

        }

        else{

            UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"提示" message:@"相机不可用" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定"nil];

            [av show];

            

        }

    }

    else{

        //相册选择

        if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {

            [pc setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];

            //设置允许编辑

            pc.allowsEditing = YES;

            [self presentViewController:pc animated:YES completion:nil];

            [pc release];

        }

        else{

            UIAlertView *av = [[UIAlertView alloc]initWithTitle:@"提示" message:@"无法访问相册" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定"nil];

            [av show];

        }

    }

}

#pragma mark - UIImagePickerControllerDelegate相关

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{

    //选择完成 --> 判断选择完的资源是image还是media

    NSString *str = [info objectForKey:UIImagePickerControllerMediaType];

    if ([str isEqualToString:(NSString *)kUTTypeImage]) {

        //如果取到的资源是image --> image显示在_photoIv

        //UIImagePickerControllerEditedImage:编辑后的照片

        //UIImagePickerControllerOriginalImage:原图

        UIImage *image = [info objectForKey:UIImagePickerControllerEditedImage];

        _photoIv.image = image;

        

        [self dismissViewControllerAnimated:YES completion:nil];

    }

}

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

    NSLog(@"cancel");

}

 

2.xl

1.导框架

添加系统框架

MobileCoreServices.framework

遵守的协议

UINavigationControllerDelegate,UIActionSheetDelegate

 

2.方法

//actionSheet协议中的方法,点击跳转到相册

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex

{

    if (buttonIndex==2) {

        //获取相册

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

        [picker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary];//相册中获取

        picker.delegate=self;

        //跳转到相册界面

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

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值