// // PDFSignatureViewController.m // PDFReader // // Copyright © 2014-2022 PDF Technologies, Inc. All Rights Reserved. // // The PDF Reader Sample applications are licensed with a modified BSD license. // Please see License for details. This notice may not be removed from this file. // #import "PDFSignatureViewController.h" #import "PDFSignatureManager.h" #import "PDFSignatureEditViewController.h" @interface PDFSignatureViewCell : UITableViewCell @property (nonatomic,retain) UIImageView *imgView; @end @implementation PDFSignatureViewCell - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { _imgView = [[UIImageView alloc] init]; [self.contentView addSubview:_imgView]; } return self; } - (void)layoutSubviews { [super layoutSubviews]; CGFloat height = self.contentView.bounds.size.height; CGFloat width = height * self.imgView.image.size.width / self.imgView.image.size.height; width = MIN(width, self.contentView.bounds.size.width - 80.0); [self.imgView setFrame:CGRectMake((self.bounds.size.width - width)/2.0, 0.0, width, height)]; self.imgView.center = self.contentView.center; } @end @interface PDFSignatureViewController () @property (nonatomic,assign) IBOutlet UITableView *tableView; @property (nonatomic,assign) IBOutlet UIView *emptyView; @property (nonatomic,assign) IBOutlet UIButton *createButton; @end @implementation PDFSignatureViewController #pragma mark - Init Methods - (void)dealloc { Block_release(_callback); [super dealloc]; } #pragma mark - UIViewController Methods - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. self.navigationItem.rightBarButtonItem = self.editButtonItem; self.editing = NO; self.createButton.layer.borderColor = [UIColor colorWithRed:0.0 green:122.0/255.0 blue:255.0/255.0 alpha:1.0].CGColor; self.createButton.layer.borderWidth = 1.0; self.createButton.layer.cornerRadius = 5.0; [self.tableView registerClass:[PDFSignatureViewCell class] forCellReuseIdentifier:@"cell"]; } - (void)setEditing:(BOOL)editing animated:(BOOL)animated { [super setEditing:editing animated:animated]; [self.tableView setEditing:editing animated:animated]; if (editing) { UIBarButtonItem *selectAllItem = [[UIBarButtonItem alloc] initWithTitle:NSLocalizedString(@"Select All", nil) style:UIBarButtonItemStylePlain target:self action:@selector(buttonItemClicked_SelectAll:)]; UIBarButtonItem *deleteItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(buttonItemClicked_Delete:)]; [self.navigationItem setLeftBarButtonItems:@[selectAllItem, deleteItem] animated:animated]; [selectAllItem release]; [deleteItem release]; } else { UIBarButtonItem *cancelItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel target:self action:@selector(buttonItemClicked_Cancel:)]; [self.navigationItem setLeftBarButtonItems:@[cancelItem] animated:animated]; [cancelItem release]; } } #pragma mark - Button Actions - (IBAction)buttonItemClicked_Create:(id)sender { PDFSignatureEditViewController *vc = [[PDFSignatureEditViewController alloc] init]; vc.callback = ^(UIImage *image) { if (image) { [[PDFSignatureManager sharedManager] addSignature:image]; [self.tableView reloadData]; } }; if (UIUserInterfaceIdiomPad == UI_USER_INTERFACE_IDIOM()) { UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:vc]; nav.modalPresentationStyle = UIModalPresentationFormSheet; [self presentViewController:nav animated:YES completion:nil]; [nav release]; [vc release]; } else { PDFSignatureNavigationController *nav = [[PDFSignatureNavigationController alloc] initWithRootViewController:vc]; [self presentViewController:nav animated:YES completion:nil]; [nav release]; [vc release]; } } - (void)buttonItemClicked_Cancel:(id)sender { if (self.tableView.editing) { self.tableView.editing = NO; } else { [self dismissViewControllerAnimated:YES completion:^{ if (self.callback) { self.callback(nil); self.callback = nil; } }]; } } - (void)buttonItemClicked_SelectAll:(id)sender { NSInteger numberOfRowsInSection = [self.tableView numberOfRowsInSection:0]; if (self.tableView.indexPathsForSelectedRows.count != numberOfRowsInSection) { for (NSInteger i=0; i