|
@@ -18,7 +18,7 @@
|
|
|
|
|
|
#import <compdfkit_tools/CPDFColorUtils.h>
|
|
|
|
|
|
-@interface CPDFSignatureEditViewController () <UIPopoverPresentationControllerDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate, UIColorPickerViewControllerDelegate, UITextFieldDelegate, CPDFColorSelectViewDelegate, CPDFColorPickerViewDelegate, CSignatureDrawViewDelegate>
|
|
|
+@interface CPDFSignatureEditViewController () <UIPopoverPresentationControllerDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate, UIColorPickerViewControllerDelegate, UITextFieldDelegate,UIGestureRecognizerDelegate, CPDFColorSelectViewDelegate, CPDFColorPickerViewDelegate, CSignatureDrawViewDelegate>
|
|
|
|
|
|
@property (nonatomic, strong) CPDFColorSelectView *colorSelectView;
|
|
|
|
|
@@ -50,6 +50,10 @@
|
|
|
|
|
|
@property (nonatomic, strong) UIButton *clearButton;
|
|
|
|
|
|
+@property (nonatomic, strong) UILabel *emptyLabel;
|
|
|
+
|
|
|
+@property (nonatomic, strong) UIView *headerView;
|
|
|
+
|
|
|
@end
|
|
|
|
|
|
@implementation CPDFSignatureEditViewController
|
|
@@ -58,15 +62,27 @@
|
|
|
|
|
|
- (void)viewDidLoad {
|
|
|
[super viewDidLoad];
|
|
|
- // Do any additional setup after loading the view.
|
|
|
- self.title = NSLocalizedString(@"Add Signature", nil);
|
|
|
+ // Do any additional setup after loading the view
|
|
|
+
|
|
|
+ self.headerView = [[UIView alloc] init];
|
|
|
+ self.headerView.layer.borderColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:0.1].CGColor;
|
|
|
+ self.headerView.layer.borderWidth = 1.0;
|
|
|
+ self.headerView.backgroundColor = [CPDFColorUtils CAnnotationPropertyViewControllerBackgoundColor];
|
|
|
+ [self.view addSubview:self.headerView];
|
|
|
|
|
|
NSArray *segmmentArray = [NSArray arrayWithObjects:NSLocalizedString(@"Draw", nil), NSLocalizedString(@"Text", nil), NSLocalizedString(@"Image", nil),nil];
|
|
|
_segmentedControl = [[UISegmentedControl alloc] initWithItems:segmmentArray];
|
|
|
_segmentedControl.selectedSegmentIndex = 0;
|
|
|
_segmentedControl.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
|
|
|
[_segmentedControl addTarget:self action:@selector(segmentedControlValueChanged_singature:) forControlEvents:UIControlEventValueChanged];
|
|
|
- self.navigationItem.titleView = self.segmentedControl;
|
|
|
+ [self.view addSubview:self.segmentedControl];
|
|
|
+
|
|
|
+ self.emptyLabel = [[UILabel alloc] init];
|
|
|
+ self.emptyLabel.font = [UIFont systemFontOfSize:27];
|
|
|
+ self.emptyLabel.textColor = [UIColor grayColor];
|
|
|
+ self.emptyLabel.text = NSLocalizedString(@"Signature Here", nil);
|
|
|
+ self.emptyLabel.textAlignment = NSTextAlignmentCenter;
|
|
|
+ [self.view addSubview:self.emptyLabel];
|
|
|
|
|
|
self.signatureDrawTextView = [[CSignatureDrawView alloc] init];
|
|
|
self.signatureDrawTextView.delegate = self;
|
|
@@ -107,17 +123,16 @@
|
|
|
|
|
|
self.cacelButon = [[UIButton alloc] init];
|
|
|
[self.cacelButon setTitle:NSLocalizedString(@"Cancel", nil) forState:UIControlStateNormal];
|
|
|
+ self.cacelButon.titleLabel.adjustsFontSizeToFitWidth = YES;
|
|
|
[self.cacelButon setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
|
|
[self.cacelButon addTarget:self action:@selector(buttonItemClicked_Cancel:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
- UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc] initWithCustomView:self.cacelButon];
|
|
|
- self.navigationItem.leftBarButtonItem = cancelItem;
|
|
|
+ [self.headerView addSubview:self.cacelButon];
|
|
|
|
|
|
self.saveButton = [[UIButton alloc] init];
|
|
|
[self.saveButton setTitle:NSLocalizedString(@"Done", nil) forState:UIControlStateNormal];
|
|
|
[self.saveButton setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];
|
|
|
[self.saveButton addTarget:self action:@selector(buttonItemClicked_Save:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
- UIBarButtonItem *doneItem = [[UIBarButtonItem alloc] initWithCustomView:self.saveButton];
|
|
|
- self.navigationItem.rightBarButtonItem = doneItem;
|
|
|
+ [self.headerView addSubview:self.saveButton];
|
|
|
|
|
|
self.bottomBorder = [CALayer layer];
|
|
|
self.bottomBorder.backgroundColor = [UIColor blackColor].CGColor;
|
|
@@ -153,30 +168,26 @@
|
|
|
self.selecIndex = CSignatureTopBarDefault;
|
|
|
self.view.backgroundColor = [CPDFColorUtils CAnnotationPropertyViewControllerBackgoundColor];
|
|
|
[self createGestureRecognizer];
|
|
|
+ [self updatePreferredContentSizeWithTraitCollection:self.traitCollection];
|
|
|
}
|
|
|
|
|
|
- (void)viewWillLayoutSubviews {
|
|
|
[super viewWillLayoutSubviews];
|
|
|
+ self.headerView.frame = CGRectMake(0, 0, self.view.frame.size.width, 150);
|
|
|
self.colorPicker.frame = CGRectMake(0, self.view.frame.size.height/2, self.view.frame.size.width, self.view.frame.size.height/2);
|
|
|
- self.segmentedControl.frame = CGRectMake(0, 40, 280, 30);
|
|
|
+ self.segmentedControl.frame = CGRectMake((self.view.frame.size.width - 220)/2, 10, 220, 30);
|
|
|
+ self.emptyLabel.frame = CGRectMake((self.view.frame.size.width - 200)/2, (self.view.frame.size.height - 50)/2, 200, 50);
|
|
|
|
|
|
if (@available(iOS 11.0, *)) {
|
|
|
- if (UIInterfaceOrientationIsPortrait([UIApplication sharedApplication].statusBarOrientation)) {
|
|
|
- self.colorSelectView.frame = CGRectMake(self.view.safeAreaInsets.left, self.view.safeAreaInsets.top, self.view.frame.size.width-self.view.safeAreaInsets.left-self.view.safeAreaInsets.right, 60);
|
|
|
- self.thicknessView.frame = CGRectMake(self.view.safeAreaInsets.left, self.view.safeAreaInsets.top+90, self.view.frame.size.width-self.view.safeAreaInsets.left-self.view.safeAreaInsets.right, 60);
|
|
|
- self.thicknessLabel.frame = CGRectMake(20, 15, 60, 30);
|
|
|
- self.thicknessSlider.frame = CGRectMake(90, 0, self.thicknessView.bounds.size.width-110, 60);
|
|
|
- self.signatureDrawTextView.frame = CGRectMake(self.view.safeAreaInsets.left, self.view.safeAreaInsets.top + 150, self.view.frame.size.width - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right, self.view.frame.size.height-self.view.safeAreaInsets.top-self.view.safeAreaInsets.bottom-150);
|
|
|
-
|
|
|
- } else {
|
|
|
- self.colorSelectView.frame = CGRectMake(self.view.safeAreaInsets.left, self.view.safeAreaInsets.top-15, 380, 60);
|
|
|
- self.thicknessView.frame = CGRectMake(self.view.safeAreaInsets.left+380, self.view.safeAreaInsets.top, self.view.frame.size.width-self.view.safeAreaInsets.left-self.view.safeAreaInsets.right-380, 60);
|
|
|
- self.thicknessLabel.frame = CGRectMake(20, 15, 60, 30);
|
|
|
- self.thicknessSlider.frame = CGRectMake(90, 0, self.thicknessView.bounds.size.width-110, 60);
|
|
|
- self.signatureDrawTextView.frame = CGRectMake(self.view.safeAreaInsets.left, self.view.safeAreaInsets.top + 90, self.view.frame.size.width - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right, self.view.frame.size.height-self.view.safeAreaInsets.top-self.view.safeAreaInsets.bottom-90);
|
|
|
- }
|
|
|
+ self.saveButton.frame = CGRectMake(self.view.frame.size.width - 60 - self.view.safeAreaInsets.right, 5, 50, 40);
|
|
|
+ self.cacelButon.frame = CGRectMake( self.view.safeAreaInsets.left+20, 5, 50, 40);
|
|
|
+ self.colorSelectView.frame = CGRectMake(self.view.safeAreaInsets.left, 50, self.view.frame.size.width-self.view.safeAreaInsets.left-self.view.safeAreaInsets.right, 60);
|
|
|
+ self.thicknessView.frame = CGRectMake(self.view.safeAreaInsets.left, 140, self.view.frame.size.width-self.view.safeAreaInsets.left-self.view.safeAreaInsets.right, 60);
|
|
|
+ self.thicknessLabel.frame = CGRectMake(20, 15, 60, 30);
|
|
|
+ self.thicknessSlider.frame = CGRectMake(90, 0, self.thicknessView.bounds.size.width-110, 60);
|
|
|
+ self.signatureDrawTextView.frame = CGRectMake(self.view.safeAreaInsets.left, 210, self.view.frame.size.width - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right, self.view.frame.size.height-self.view.safeAreaInsets.top-self.view.safeAreaInsets.bottom-150);
|
|
|
|
|
|
- self.signatureDrawImageView.frame = self.signatureDrawTextView.frame;
|
|
|
+ self.signatureDrawImageView.frame = CGRectMake(self.view.safeAreaInsets.left, 50, self.view.frame.size.width - self.view.safeAreaInsets.left - self.view.safeAreaInsets.right, self.view.frame.size.height-self.view.safeAreaInsets.top-self.view.safeAreaInsets.bottom-150);
|
|
|
self.createButton.frame = CGRectMake(self.view.frame.size.width - 70 - self.view.safeAreaInsets.right, self.view.frame.size.height - 100 - self.view.safeAreaInsets.bottom, 50, 50);
|
|
|
self.clearButton.frame = CGRectMake(self.view.frame.size.width - 70 - self.view.safeAreaInsets.right, self.view.frame.size.height - 100 - self.view.safeAreaInsets.bottom, 50, 50);
|
|
|
} else {
|
|
@@ -186,6 +197,8 @@
|
|
|
self.signatureDrawImageView.frame = self.signatureDrawTextView.frame;
|
|
|
self.createButton.frame = CGRectMake(self.view.frame.size.width - 70, self.view.frame.size.height - 100, 50, 50);
|
|
|
self.clearButton.frame = CGRectMake(self.view.frame.size.width - 70, self.view.frame.size.height - 100, 50, 50);
|
|
|
+ self.saveButton.frame = CGRectMake(self.view.frame.size.width - 60, 5, 50, 40);
|
|
|
+ self.cacelButon.frame = CGRectMake(20, 5, 50, 40);
|
|
|
}
|
|
|
|
|
|
self.textField.frame = CGRectMake((self.view.frame.size.width - 300)/2, 200, 300, 100);
|
|
@@ -195,8 +208,17 @@
|
|
|
[self.signatureDrawTextView signatureClear];
|
|
|
}
|
|
|
|
|
|
+- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
|
|
|
+ [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
|
|
|
+ [self updatePreferredContentSizeWithTraitCollection:newCollection];
|
|
|
+}
|
|
|
+
|
|
|
#pragma mark - Private Methods
|
|
|
|
|
|
+- (void)updatePreferredContentSizeWithTraitCollection:(UITraitCollection *)traitCollection {
|
|
|
+ self.preferredContentSize = CGSizeMake(self.view.bounds.size.width, traitCollection.verticalSizeClass == UIUserInterfaceSizeClassCompact ? 350 : 750);
|
|
|
+}
|
|
|
+
|
|
|
- (void)createGestureRecognizer {
|
|
|
[self.createButton setUserInteractionEnabled:YES];
|
|
|
|
|
@@ -233,6 +255,7 @@
|
|
|
[self.delegate signatureEditViewController:self image:image];
|
|
|
}
|
|
|
} else if (CSignatureTopBarImage == self.selecIndex) {
|
|
|
+ [self.signatureDrawTextView signatureClear];
|
|
|
UIImage *image = [self.signatureDrawImageView signatureImage];
|
|
|
if (self.delegate && [self.delegate respondsToSelector:@selector(signatureEditViewController:image:)]) {
|
|
|
[self.delegate signatureEditViewController:self image:image];
|
|
@@ -260,13 +283,17 @@
|
|
|
if (self.segmentedControl.selectedSegmentIndex == 0) {
|
|
|
self.colorSelectView.hidden = NO;
|
|
|
self.signatureDrawTextView.hidden = NO;
|
|
|
- self.signatureDrawImageView.hidden = YES;
|
|
|
- self.textField.hidden = YES;
|
|
|
self.selecIndex = CSignatureTopBarDefault;
|
|
|
self.colorSelectView.hidden = NO;
|
|
|
- self.createButton.hidden = YES;
|
|
|
self.clearButton.hidden = NO;
|
|
|
self.signatureDrawTextView.selectIndex = CSignatureDrawText;
|
|
|
+ self.emptyLabel.hidden = NO;
|
|
|
+ self.thicknessView.hidden = NO;
|
|
|
+
|
|
|
+ self.signatureDrawImageView.hidden = YES;
|
|
|
+ self.createButton.hidden = YES;
|
|
|
+ self.textField.hidden = YES;
|
|
|
+ [self.textField resignFirstResponder];
|
|
|
} else if (self.segmentedControl.selectedSegmentIndex == 1) {
|
|
|
self.colorSelectView.hidden = NO;
|
|
|
self.signatureDrawTextView.hidden = YES;
|
|
@@ -277,8 +304,10 @@
|
|
|
self.createButton.hidden = YES;
|
|
|
self.thicknessView.hidden = YES;
|
|
|
self.clearButton.hidden = NO;
|
|
|
- [self.textField resignFirstResponder];
|
|
|
+ self.emptyLabel.hidden = YES;
|
|
|
+ [self.textField becomeFirstResponder];
|
|
|
} else if (self.segmentedControl.selectedSegmentIndex == 2) {
|
|
|
+ [self.textField resignFirstResponder];
|
|
|
self.colorSelectView.hidden = YES;
|
|
|
self.signatureDrawTextView.hidden = YES;
|
|
|
self.signatureDrawImageView.hidden = NO;
|
|
@@ -289,6 +318,7 @@
|
|
|
self.signatureDrawImageView.selectIndex = CSignatureDrawImage;
|
|
|
self.thicknessView.hidden = YES;
|
|
|
self.clearButton.hidden = YES;
|
|
|
+ self.emptyLabel.hidden = NO;
|
|
|
[self.signatureDrawImageView setNeedsDisplay];
|
|
|
}
|
|
|
}
|
|
@@ -301,7 +331,11 @@
|
|
|
- (void)buttonItemClicked_clear:(UIButton *)button {
|
|
|
if (self.segmentedControl.selectedSegmentIndex == 0) {
|
|
|
[self.signatureDrawTextView signatureClear];
|
|
|
+ self.emptyLabel.text = NSLocalizedString(@"Signature Here", nil);
|
|
|
+ } else if (self.segmentedControl.selectedSegmentIndex == 1) {
|
|
|
+ self.textField.text = @"";
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#pragma mark - UITextFieldDelegate
|
|
@@ -449,6 +483,7 @@
|
|
|
|
|
|
- (void)signatureDrawViewStart:(CSignatureDrawView *)signatureDrawView {
|
|
|
[self.saveButton setTitleColor:[UIColor colorWithRed:20.0/255.0 green:96.0/255.0 blue:243.0/255.0 alpha:1.0] forState:UIControlStateNormal];
|
|
|
+ self.emptyLabel.text = @"";
|
|
|
}
|
|
|
|
|
|
@end
|