您的位置:首页 > 移动开发 > IOS开发

项目工程中 ios 相册和相机

2015-09-25 21:42 351 查看
- (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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: