- (void)selectAvatar:(id)sender {
// show action sheet
UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:nil
delegate:self
cancelButtonTitle:@"取消"
destructiveButtonTitle:nil
otherButtonTitles:@"拍照", @"从相册选择照片", nil];
[actionSheet showInView:self.view];
}
#pragma mark action sheet delegate
// 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 buttonTitleAtIndex:buttonIndex] isEqualToString:@"拍照"]) {
// 拍照
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.delegate = self;
imagePicker.allowsEditing = YES;//正方形截取框
[self presentViewController:imagePicker
animated:YES
completion:nil];
self.imagePicker = imagePicker;//强持有
}
else {
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@""
message:@"当前设备不支持摄像头"
delegate:self
cancelButtonTitle:@"知道了"
otherButtonTitles:nil];
[alertView show];
}
} else if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:@"从相册选择照片"]) {
if ([UIImagePickerController isSourceTypeAvailable:
UIImagePickerControllerSourceTypePhotoLibrary])
{
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePicker.delegate = self;
imagePicker.allowsEditing = YES;
[self presentViewController:imagePicker
animated:YES
completion:nil];
self.imagePicker = imagePicker;
}
} else if ([[actionSheet buttonTitleAtIndex:buttonIndex] isEqualToString:EPIVC_ACTIONSHEET_GIVEUP_BTN_TITLE]) {//离开编辑
[self moveBackToPreviousVC];
}
}
#pragma mark - image picker
- (void)imagePickerController:(UIImagePickerController *)picker
didFinishPickingMediaWithInfo:(NSDictionary *)info
{
if (UIImagePickerControllerSourceTypePhotoLibrary == picker.sourceType) {
NSString *mediaType = [info objectForKey:UIImagePickerControllerMediaType];
if ([mediaType isEqualToString:(NSString *)kUTTypeImage]) {
UIImage *photoEdited = [info objectForKey:UIImagePickerControllerEditedImage];
self.userImgView.image = photoEdited;
isPhotoChanged = YES;
[self setRightBarItemsEnabled:YES];
}
[self dismissViewControllerAnimated:YES completion:nil];
} else {//相机当场拍的照片
UIImage *photo = [info objectForKey:UIImagePickerControllerEditedImage];
photo = [photo imageAfterFixOrientation];
self.userImgView.image = photo;
[self setRightBarItemsEnabled:YES];
isPhotoChanged = YES;
//保存到本地相册
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeImageToSavedPhotosAlbum:[photo CGImage]
orientation:(ALAssetOrientation)[photo imageOrientation]
completionBlock:nil];
[self dismissViewControllerAnimated:YES completion:nil];
}
self.imagePicker = nil;
}