①初始化UIImagePickerController
self.imagePicker=[[UIImagePickerController alloc] init];
②遵守协议
@interface ViewController ()
③
//设置代理
_imagePicker.delegate=self;
//可编辑
_imagePicker.allowsEditing=YES;
④
//设置头像图片圆角
_selectedRightImage.layer.cornerRadius=100;
_selectedRightImage.layer.borderWidth=6;
_selectedRightImage.layer.masksToBounds=YES;
_selectedRightImage.layer.borderColor=[[UIColor whiteColor] CGColor];
self.selectedRightImage.userInteractionEnabled=YES;
⑤给图片添加点击事件
UITapGestureRecognizer *tapPicture=[[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(selectedImageForIcon)];
[_selectedRightImage addGestureRecognizer:tapPicture];
⑥从相册,图库,相机获取图片
-(void)selectedImageForIcon
{
UIAlertController*alertController=[UIAlertController alertControllerWithTitle:@"" message:@""preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction*actionCamera=[UIAlertAction actionWithTitle:@"打开相机" style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) {
_imagePicker.sourceType=UIImagePickerControllerSourceTypeCamera;
[self presentViewController:_imagePicker animated:YES completion:nil];
}];
UIAlertAction*actionPhotoLIbrary=[UIAlertAction actionWithTitle:@"打开相册" style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) {
_imagePicker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
[self presentViewController:_imagePicker animated:YES completion:nil];
}];
UIAlertAction*actionPhotoAlbum=[UIAlertAction actionWithTitle:@"打开图库" style:UIAlertActionStyleDefault handler:^(UIAlertAction *_Nonnull action) {
_imagePicker.sourceType=UIImagePickerControllerSourceTypeSavedPhotosAlbum;
[self presentViewController:_imagePicker animated:YES completion:nil];
}];
UIAlertAction*cancelAction=[UIAlertAction actionWithTitle:@"取消"style:UIAlertActionStyleCancel handler:nil];
[alertController addAction:actionCamera];
[alertController addAction:actionPhotoAlbum];
[alertController addAction:actionPhotoLIbrary];
[alertController addAction:cancelAction];
[self presentViewController:alertController animated:YES completion:nil];
}
实现这个方法就可以更换头像了!!!
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(nullable NSDictionary *)editingInfo
{
_selectedRightImage.image=image;
[self dismissViewControllerAnimated:YES completion:nil];
}
最终效果图: