iOS 调用相机拍照和选择图库图片 设置头像

不多说,直接上代码

import "ViewController.h"

@interface ViewController ()

@property(nonatomic,strong)UIButton *btn;
@property(nonatomic,strong)UIActionSheet *actionSheet;

@end

@implementation ViewController

  • (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    _btn = [UIButton buttonWithType:UIButtonTypeSystem];
    _btn.frame = CGRectMake(80, 200, 200, 200);
    _btn.backgroundColor = [UIColor yellowColor];
    [_btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
    [_btn setTitle:@"点我" forState:UIControlStateNormal];
    [self.view addSubview:_btn];
    }

  • (void)btnClick:(UIButton *)sender
    {
    [self openActionSheetFunc];
    }

//调用ActionSheet

  • (void)openActionSheetFunc
    {
    //判断设备是否有具有摄像头(相机)功能
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
    _actionSheet = [[UIActionSheet alloc]initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照",@"从相册选择", nil];
    }
    else
    {
    _actionSheet = [[UIActionSheet alloc]initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"从相册选择", nil];
    }
    _actionSheet.tag = 100;
    //显示提示栏
    [_actionSheet showInView:self.view];
    }

  • (void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
    {
    if (actionSheet.tag == 100)
    {
    NSUInteger sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera])
    {
    switch (buttonIndex)
    {
    case 0:
    //来源:相机
    sourceType = UIImagePickerControllerSourceTypeCamera;
    break;
    case 1:
    //来源:相册
    sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    break;
    case 2:
    return;
    }
    }
    else
    {
    if (buttonIndex == 2)
    {
    return;
    }
    else
    {
    sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;
    }
    }
    //跳转到相机或者相册页面
    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init];
    imagePickerController.allowsEditing = YES;
    imagePickerController.sourceType = sourceType;
    imagePickerController.delegate = self;
    [self presentViewController:imagePickerController animated:YES completion:nil];
    }
    }

//pickerController的代理

  • (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
    [picker dismissViewControllerAnimated:YES completion:nil];
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
    [_btn setBackgroundImage:image forState:UIControlStateNormal];
    }
  • (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    }

@end

你可能感兴趣的:(iOS 调用相机拍照和选择图库图片 设置头像)