设置代理
<UINavigationControllerDelegate, UIImagePickerControllerDelegate>
点击头像按钮:
UIAlertView * Alert=[[UIAlertView alloc]initWithTitle:@"请选择获取方式" message:@""
delegate:self cancelButtonTitle:@"取消" otherButtonTitles:
@"打开照相机",@"从手机相册获取", nil];
Alert.delegate=self;
[Alert show ];
调用相机相册,显示中文将Info.plist 文件中的
Localization native development region
设置为China
- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex {
if (buttonIndex == 1) {
[self getAvatatFormCamera:self];//调用相机
}
if (buttonIndex ==2) {
[self getAvatatFormPhotoLibrary:self];//调用相册
}
}
相册
- (void)getAvatatFormPhotoLibrary:(UIViewController *)controller
{
//这里可以判断类型是相册还是相机
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypePhotoLibrary]) {
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
picker.delegate = self;
//加上下面这句会有编辑框
picker.allowsEditing = YES;
[self presentViewController:picker animated:YES completion:nil];
}
}
相机
- (void)getAvatatFormCamera:(UIViewController *)controller
{
UIImagePickerController *picker = [[UIImagePickerController alloc] init];
picker.sourceType = UIImagePickerControllerSourceTypeCamera;
picker.delegate = self;
picker.showsCameraControls = YES;
picker.allowsEditing = YES;
[self presentViewController:picker animated:YES completion:nil];
}
选择照片或者拍照后:
#pragma - mark - UIImagePickerControllerDelegate
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
//这里可以选择image类型,
//原图:UIImagePickerControllerOriginalImage
//获取编辑框里的图:UIImagePickerControllerEditedImage
UIImage* image = [info objectForKey:UIImagePickerControllerEditedImage];
[picker dismissViewControllerAnimated:YES completion:^{
CGSize newSize = CGSizeMake(kw(300), kw(300));
UIGraphicsBeginImageContext(newSize);
UIImage *imagechuansong = image;
[imagechuansong drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//上传图片,以文件形式,还是base64在这调用就ok
}];
}
以文件形式上传请看这里:
http://www.jianshu.com/p/5e1fe956822b