KRNImagePickerController 0.0.3

KRNImagePickerController 0.0.3

Julian Drapaylo 维护。



  • Julian Drapaylo

KRNImagePickerController

KRNImagePickerController 是建立在 UIImagePickerController 之上的包装器,用于简化其使用。

## 安装

  • KRNImagePickerController/KRNImagePickerController 文件夹拖到您的项目中。
  • 在合适的地方导入 #import "KRNImagePickerController.h"。或者使用 pod 'KRNImagePickerController'。

## 使用

(请参考位于 /KRNImagePickerController 中的示例 Xcode 项目)

选择图像

要选择图像,只需使用以下方法,无需创建任何 UIImagePickerController 实例,实现 UIImagePickerDelegate 协议,写委托方法等。

+ (void)pickFromSource:(UIImagePickerControllerSourceType)sourceType fromViewController:(UIViewController *)viewController withCompletion:(KRNImagePickerCompletionWithImage)completion;
  1. sourceType - 指的是您想要选择的图像的来源类型(UIImagePickerControllerSourceTypePhotoLibrary、UIImagePickerControllerSourceTypeCamera 或 UIImagePickerControllerSourceTypeSavedPhotosAlbum)。
  2. viewController - 是 UIViewController 的实例,其中 UIImagePickerController 将从中显示
  3. completion - 是一个在选择图像后或发生错误时被调用的块。

例如,如果您在 ViewController 中有一个 UIImageView 实例,并且您想为该 UIImageView 实例选择 UIImage,您可以很容易地使用上面的方法

@property (weak, nonatomic) IBOutlet UIImageView *imageView;

...
__weak typeof (self) weakSelf = self;
[KRNImagePickerController pickFromSource:UIImagePickerControllerSourceTypePhotoLibrary 
fromViewController:self 
withCompletion:^(UIImage *image, NSError *error) {
if (!error) {
    weakSelf.imageView.image = image;
} else {
    if (error.code == KRNImagePickerOperationIsCancelled) return; // cancelation of operation is also considered to be an error so you may just return here 
    // handle the error
}
}];

为了简化,操作取消也被视为错误。如果用户取消了选择操作,completion 块中将传递 KRNImagePickerOperationIsCancelled 错误,您可以根据需要处理并执行适当的操作。

方便的方法

如果您确定需要哪种来源,可以使用带有预选来源的方便方法之一。

// from Photo Library
+ (void)pickFromPhotoLibraryFromViewController:(UIViewController *) viewController withCompletion:(KRNImagePickerCompletionWithImage)completion; 

// from Camera
+ (void)pickFromCameraFromViewController:(UIViewController *) viewController withCompletion:(KRNImagePickerCompletionWithImage)completion;

// from Saved photos album
+ (void)pickFromSavedPhotosAlbumFromViewController:(UIViewController *) viewController withCompletion:(KRNImagePickerCompletionWithImage)completion; 

映射到UIImageView

KRNImagePickerController 允许您将选择的图片映射到 UIImageView 实例的 "image" 属性。您可以使用以下方法进行映射:

+ (void) pickFromSource:(UIImagePickerControllerSourceType)sourceType fromViewController:(UIViewController *)viewController andMapToImageView:(UIImageView *)imageView withSucceed:(KRNImagePickerSucceedBlock)succeed;
示例
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

...
__weak typeof (self) weakSelf = self;
[KRNImagePickerController pickFromSource:UIImagePickerControllerSourceTypePhotoLibrary fromViewController:self andMapToImageView:weakSelf.imageView withSucceed:^(NSError *error) {
if (error) {
    if (error.code == KRNImagePickerOperationIsCancelled) return;
    //handle error here
}
}];

便捷方法

还有一些便捷的方法,您可以使用它们将选择的图片映射到 UIImageView 实例。

// from Photo Library
+ (void)pickFromPhotoLibraryFromViewController:(UIViewController *) viewController andMapToImageView:(UIImageView*)imageView withSucceed:(KRNImagePickerSucceedBlock)succeed;

// from Camera
+ (void)pickFromCameraFromViewController:(UIViewController *) viewController andMapToImageView:(UIImageView*)imageView withSucceed:(KRNImagePickerSucceedBlock)succeed;

// from Saved photos album
+ (void)pickFromSavedPhotosAlbumFromViewController:(UIViewController *) viewController andMapToImageView:(UIImageView*)imageView withSucceed:(KRNImagePickerSucceedBlock)succeed;

要求

  • iOS 8.0及以上
  • XCode 6+

许可

KRNImagePickerController 在 MIT 许可下发布。参阅 LICENSE 以获取详细信息。

联系

有任何建议或问题?请创建 Github 问题或联系我。

linkedin