IOS从本地相册获取或者拍照上传头像

//下面是代码是基本使用流程

//定义一个按钮和一个选择的图形展示

@property (strong, nonatomic) UIImageView *headImage;

@property (strong, nonatomic) UIButton *Button;

@property (strong, nonatomic) UIActionSheet *actionSheet;

@synthesize actionSheet = _actionSheet;



- (void)viewDidLoad {

    [super viewDidLoad];

    [self creatButtonAndimageView]; 

}


- (void)creatButtonAndimageView{

    CGFloat H=self.view.bounds.size.height;

    CGFloat W=self.view.bounds.size.width;

    _headImage=[[UIImageView alloc]initWithFrame:CGRectMake(W/3, H/6, W/3,W/3 )];

    _headImage.image=[UIImage imageNamed:@"111.png"];

    [self.view addSubview:_headImage];

   


    _leftButton=[UIButton buttonWithType:UIButtonTypeCustom];

    _leftButton.frame=CGRectMake(W/10, H/6+20+W/3, W*4/540);

    [_leftButton setTitle:@"从本地获取图片" forState:UIControlStateNormal];

    [_leftButton addTarget:self action:@selector(clickPickImage:) forControlEvents:UIControlEventTouchUpInside];

//    [_leftButton setTitleColor:[UIColor redColor] forState:UIControlStateNormal];

    [_leftButton setBackgroundColor: [UIColor colorWithRed:46.0/255.0 green:150.0/255.0 blue:253.0/255.0 alpha:1]];

    [self.view addSubview:_leftButton];

    _leftButton.layer.masksToBounds=YES;

    _leftButton.layer.cornerRadius=5;

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

}


- (void)callActionSheetFunc{

    if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]){

        self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"拍照", @"从相册选择", nil, nil];

    }else{

        self.actionSheet = [[UIActionSheet alloc] initWithTitle:@"选择图像" delegate:self cancelButtonTitle:@"取消"destructiveButtonTitle:nil otherButtonTitles:@"从相册选择", nil, nil];

    }

    

    self.actionSheet.tag = 1000;

    [self.actionSheet showInView:self.view];

}


// Called when a button is clicked. The view will be automatically dismissed after this call returns

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

    if (actionSheet.tag == 1000) {

        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 == 1) {

                return;

            } else {

                sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum;

            }

        }

        // 跳转到相机或相册页面

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

        imagePickerController.delegate = self;

        imagePickerController.allowsEditing = YES;

        imagePickerController.sourceType = sourceType;

        

        [self presentViewController:imagePickerController animated:YES completion:^{

            

        }];

    }

}



//选中的图片之后付给自己的imageview

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

{

    [picker dismissViewControllerAnimated:YES completion:^{

        

    }];

    

    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];

    self.headImage.image = image;

}


//点击button启动事件

- (void)clickPickImage:(UIButton *)sender

{

    [self callActionSheetFunc];

}


 //通过上述方法拿到相片之后再做上传处理


你可能感兴趣的:(IOS从本地相册获取或者拍照上传头像)