- Add Editor support

This commit is contained in:
giuseppenuc committed 2019-03-10 19:13:51 +01:00
1 parent 5974642e25
commit 1bff59846f
298 files changed
+14488 -1174

No files matched your search

@@ -49,6 +49,8 @@
@property (readonly) bool isVisible;
@property (nonatomic) bool enableEditMode;
@property (nonatomic, strong) UICollectionView *collectionView;
@property (nonatomic, strong) UIButton *photoLibraryBtn;
+55 -22
View File
@@ -13,11 +13,12 @@
#import "PNCollectionViewCell.h"
#import "NSString+HexColor.h"
#import <PureLayout/PureLayout.h>
#import <CLImageEditor/CLImageEditor.h>
#pragma mark - PNImagePickerViewController -
@interface PNImagePickerViewController () <UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UIImagePickerControllerDelegate, UINavigationControllerDelegate>
@interface PNImagePickerViewController () <UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout, UIImagePickerControllerDelegate, UINavigationControllerDelegate,CLImageEditorDelegate>
#define imagePickerHeight 290.0f
@@ -55,7 +56,7 @@
_targetSize = CGSizeMake(1024, 1024);
_haveCamera = [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];
_animationTime = 0.4;
_enableEditMode = NO;
}
return self;
@@ -327,11 +328,19 @@
}
// Show the UIImageView and use it to display the requested image.
if ([self->delegate respondsToSelector:@selector(imagePicker:didSelectImage:)]) {
[self->delegate imagePicker:self didSelectImage:result];
if (self->_enableEditMode) {
CLImageEditor *editor = [[CLImageEditor alloc] initWithImage:result];
editor.delegate = self;
[self presentViewController:editor animated:YES completion:nil];
}
else {
if ([self->delegate respondsToSelector:@selector(imagePicker:didSelectImage:)]) {
[self->delegate imagePicker:self didSelectImage:result];
}
[self dismissAnimated:YES];
}
[self dismissAnimated:YES];
}];
}
@@ -397,18 +406,31 @@
picker.mediaTypes = [[NSArray alloc] initWithObjects: (NSString *) kUTTypeImage, nil];
[self presentViewController:picker animated:YES completion:^{
}];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
UIImage *chosenImage = info[UIImagePickerControllerOriginalImage];
[self dismissAnimated:YES];
[picker dismissViewControllerAnimated:YES completion:^{
if ([self->delegate respondsToSelector:@selector(imagePicker:didSelectImage:)]) {
[self->delegate imagePicker:self didSelectImage:chosenImage];
}
}];
if (self->_enableEditMode) {
[picker dismissViewControllerAnimated:YES completion:^{
CLImageEditor *editor = [[CLImageEditor alloc] initWithImage:chosenImage];
editor.delegate = self;
[self presentViewController:editor animated:YES completion:nil];
}];
}
else {
[self dismissAnimated:YES];
[picker dismissViewControllerAnimated:YES completion:^{
if ([self->delegate respondsToSelector:@selector(imagePicker:didSelectImage:)]) {
[self->delegate imagePicker:self didSelectImage:chosenImage];
}
}];
}
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker {
@@ -448,17 +470,17 @@
initialSpringVelocity:0
options:0
animations:^{
//[_logoImage layoutIfNeeded];
[self.view layoutIfNeeded];
//[_logoImage layoutIfNeeded];
[self.view layoutIfNeeded];
[self->_backgroundView setAlpha:1];
[self->_imagePickerView layoutIfNeeded];
} completion:^(BOOL finished) {
if ([self->delegate respondsToSelector:@selector(imagePickerDidOpen)]) {
[self->delegate imagePickerDidOpen];
}
}];
} completion:^(BOOL finished) {
if ([self->delegate respondsToSelector:@selector(imagePickerDidOpen)]) {
[self->delegate imagePickerDidOpen];
}
}];
} else {
@@ -525,6 +547,17 @@
}
}
#pragma mark- CLImageEditor delegate
- (void)imageEditor:(CLImageEditor*)editor didFinishEditingWithImage:(UIImage*)image
{
if ([delegate respondsToSelector:@selector(imagePicker:didSelectImage:)]) {
[delegate imagePicker:self didSelectImage:image];
}
[self dismissAnimated:YES];
}
@end