// // XHPhotographyHelper.m // MessageDisplayExample // // Created by HUAJIE-1 on 14-5-3. // Copyright (c) 2014年 嗨,我是曾宪华(@xhzengAIB),曾加入YY Inc.担任高级移动开发工程师,拍立秀App联合创始人,热衷于简洁、而富有理性的事物 QQ:543413507 主页:http://zengxianhua.com All rights reserved. // #import "XHPhotographyHelper.h" #import "XHMacro.h" @interface XHPhotographyHelper () @property (nonatomic, copy) DidFinishTakeMediaCompledBlock didFinishTakeMediaCompled; @end @implementation XHPhotographyHelper - (instancetype)init { self = [super init]; if (self) { } return self; } - (void)dealloc { self.didFinishTakeMediaCompled = nil; } - (void)showOnPickerViewControllerSourceType:(UIImagePickerControllerSourceType)sourceType onViewController:(UIViewController *)viewController compled:(DidFinishTakeMediaCompledBlock)compled { if (![UIImagePickerController isSourceTypeAvailable:sourceType]) { compled(nil, nil); return; } self.didFinishTakeMediaCompled = [compled copy]; UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init]; imagePickerController.editing = YES; imagePickerController.delegate = self; imagePickerController.sourceType = sourceType; if (sourceType == UIImagePickerControllerSourceTypeCamera) { imagePickerController.mediaTypes = [UIImagePickerController availableMediaTypesForSourceType:UIImagePickerControllerSourceTypeCamera]; } [viewController presentViewController:imagePickerController animated:YES completion:NULL]; } - (void)dismissPickerViewController:(UIImagePickerController *)picker { WEAKSELF [picker dismissViewControllerAnimated:YES completion:^{ weakSelf.didFinishTakeMediaCompled = nil; }]; } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo { if (self.didFinishTakeMediaCompled) { self.didFinishTakeMediaCompled(image, editingInfo); } [self dismissPickerViewController:picker]; } - (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { if (self.didFinishTakeMediaCompled) { self.didFinishTakeMediaCompled(nil, info); } [self dismissPickerViewController:picker]; } - (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker { [self dismissPickerViewController:picker]; } @end