iOS开发小技巧--相机相册的正确打开方式

本文介绍如何在iOS应用中正确使用UIImagePickerController打开相机或相册,并提供了具体的实现方法及注意事项,包括如何判断设备是否支持特定功能。

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

iOS相机相册的正确打开方式- UIImagePickerController

  • 通过指定sourceType来实现打开相册还是相机
UIImagePickerControllerSourceTypePhotoLibrary, // 相册库,范围比PhotosAlbum要大
UIImagePickerControllerSourceTypeCamera, // 相机
UIImagePickerControllerSourceTypeSavedPhotosAlbum // 相册
  • 打开之前一定判断设备是否可用[UIImagePickerController isSourceTypeAvailable:type]
/// 打开相机
- (void)openCamera
{
    [self openImagePickerControllerWithType:UIImagePickerControllerSourceTypeCamera];
}
/// 打开相册
- (void)openAlbum
{
    [self openImagePickerControllerWithType:UIImagePickerControllerSourceTypePhotoLibrary];
}
/// 打开ImagePickerController的方法
- (void)openImagePickerControllerWithType:(UIImagePickerControllerSourceType)type
{
    // 设备不可用  直接返回
    if (![UIImagePickerController isSourceTypeAvailable:type]) return;

    UIImagePickerController *imgPicker = [[UIImagePickerController alloc] init];
    imgPicker.sourceType = type;
    imgPicker.delegate = self;
    [self presentViewController:imgPicker animated:YES completion:nil];
}
  • 代理方法中,获取选中图片注意:一定记得dismiss
#pragma mark - UINavigationControllerDelegate, UIImagePickerControllerDelegate
// 选择照片之后
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary<NSString *,id> *)info
{
//    ChaosLog(@"%@",info);
    // 获取用户选择的图片
    UIImage *image = info[UIImagePickerControllerOriginalImage];

    [self.photosView addPhoto:image];

    // 退出imagePickerController
    [self dismissViewControllerAnimated:YES completion:nil];
    [self.textView becomeFirstResponder];
}
  • 系统自带的只能单选,实现多选要用大如图的库

762322-20160811110213684-1676513457.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值