美文网首页
iOS 调用相机拍照和选择图库图片 设置头像

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

作者: CoderSahara | 来源:发表于2017-10-27 14:49 被阅读42次

    不多说,直接上代码

    import "ViewController.h"

    @interface ViewController ()<UIImagePickerControllerDelegate,UIActionSheetDelegate>

    @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 调用相机拍照和选择图库图片 设置头像

          本文链接:https://www.haomeiwen.com/subject/prorpxtx.html