项目工程中 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;
}
// 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;
}
相关文章推荐
- 蓝懿iOS培训日志21 触摸事件和拖拽
- iOS跑马灯效果的源代码
- iOS block
- 蓝懿iOS培训日志20 MKMap
- ios开发:Core Data概述
- 给ImageView添加约束后,在裁圆角作为头像,在ios9无效bug
- ios的系统框架
- iOS开发-常用第三方开源框架介绍
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
- iOS改变状态栏的字体颜色
- iOS开发入门杂记
- iOS开源项目学习—— AFNetworking
- ios URL 中文乱码问题
- ios pop 折叠动画
- IOS 懒加载,死循环
- IOS开发过程中与嵌入的网页数据交互
- iOS_AFNetWorking框架分析
- IOS 纯代码实现视图控制器的封装
- IOS UDP小例子总结
- iOS项目开发实战——Label中字体字号与Label多行显示