|
@@ -16,6 +16,7 @@
|
|
|
|
|
|
#import "CPDFDisplayTableViewCell.h"
|
|
|
#import "CActivityIndicatorView.h"
|
|
|
+#import "CPDFColorUtils.h"
|
|
|
|
|
|
typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
CDisplayPDFTypeSinglePage = 0,
|
|
@@ -24,6 +25,7 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
CDisplayPDFTypeContinuousScroll,
|
|
|
CDisplayPDFTypeCropMode,
|
|
|
CDisplayPDFTypeVerticalScrolling,
|
|
|
+ CDisplayPDFTypeHorizontalScrolling,
|
|
|
CDisplayPDFTypeThemesLight,
|
|
|
CDisplayPDFTypeThemesDark,
|
|
|
CDisplayPDFTypeThemesSepia,
|
|
@@ -88,6 +90,13 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
compatibleWithTraitCollection:nil];
|
|
|
self.titilName = NSLocalizedString(@"Vertical Scrolling", nil);
|
|
|
break;
|
|
|
+
|
|
|
+ case CDisplayPDFTypeHorizontalScrolling:
|
|
|
+ self.image = [UIImage imageNamed:@"CDisplayImageNameHorizontalScrolling"
|
|
|
+ inBundle:[NSBundle bundleForClass:self.class]
|
|
|
+ compatibleWithTraitCollection:nil];
|
|
|
+ self.titilName = NSLocalizedString(@"Horizontal Scrolling", nil);
|
|
|
+ break;
|
|
|
case CDisplayPDFTypeThemesLight:
|
|
|
self.image = [UIImage imageNamed:@"CDisplayImageNameThemesLight"
|
|
|
inBundle:[NSBundle bundleForClass:self.class]
|
|
@@ -133,6 +142,10 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
|
|
|
@property (nonatomic, strong) CPDFView * pdfview;
|
|
|
|
|
|
+@property (nonatomic, strong) UILabel *titleLabel;
|
|
|
+
|
|
|
+@property (nonatomic, strong) UIButton *doneBtn;
|
|
|
+
|
|
|
@end
|
|
|
|
|
|
@implementation CPDFDisplayViewController
|
|
@@ -154,23 +167,63 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
self.tableView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
|
|
|
self.tableView.delegate = self;
|
|
|
self.tableView.dataSource = self;
|
|
|
- self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
|
|
|
+ self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
|
|
|
self.tableView.tableFooterView = [[UIView alloc] init];
|
|
|
[self.view addSubview:self.tableView];
|
|
|
[self.tableView reloadData];
|
|
|
// Do any additional setup after loading the view.
|
|
|
+ self.view.backgroundColor = [CPDFColorUtils CPDFViewControllerBackgroundColor];
|
|
|
+ [self updatePreferredContentSizeWithTraitCollection:self.traitCollection];
|
|
|
+
|
|
|
+ self.doneBtn = [UIButton buttonWithType:UIButtonTypeSystem];
|
|
|
+ self.doneBtn.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
|
|
|
+ [self.doneBtn setTitle:NSLocalizedString(@"Done", nil) forState:UIControlStateNormal];
|
|
|
+ [self.doneBtn addTarget:self action:@selector(buttonItemClicked_back:) forControlEvents:UIControlEventTouchUpInside];
|
|
|
+ [self.view addSubview:self.doneBtn];
|
|
|
+
|
|
|
+ self.titleLabel = [[UILabel alloc] init];
|
|
|
+ self.titleLabel.text = NSLocalizedString(@"Preview Settings", nil);
|
|
|
+ self.titleLabel.font = [UIFont boldSystemFontOfSize:17];
|
|
|
+ self.titleLabel.adjustsFontSizeToFitWidth = YES;
|
|
|
+ self.titleLabel.textAlignment = NSTextAlignmentCenter;
|
|
|
+ [self.view addSubview:self.titleLabel];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)buttonItemClicked_back:(id)sender {
|
|
|
+ [self dismissViewControllerAnimated:YES completion:^{
|
|
|
+
|
|
|
+ }];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)viewWillLayoutSubviews {
|
|
|
+ self.doneBtn.frame = CGRectMake(self.view.frame.size.width - 60, 5, 50, 50);
|
|
|
+ self.titleLabel.frame = CGRectMake((self.view.frame.size.width - 120)/2, 5, 120, 50);
|
|
|
+ self.tableView.frame = CGRectMake(0, 70, self.view.frame.size.width, self.view.frame.size.height - 50);
|
|
|
+}
|
|
|
+
|
|
|
+- (void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator {
|
|
|
+ [super willTransitionToTraitCollection:newCollection withTransitionCoordinator:coordinator];
|
|
|
+ [self updatePreferredContentSizeWithTraitCollection:newCollection];
|
|
|
+}
|
|
|
+
|
|
|
+- (void)updatePreferredContentSizeWithTraitCollection:(UITraitCollection *)traitCollection
|
|
|
+{
|
|
|
+ self.preferredContentSize = CGSizeMake(self.view.bounds.size.width,self.view.bounds.size.height * 0.9);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
#pragma mark - Accessors
|
|
|
|
|
|
- (NSArray *)displayModeArray {
|
|
|
if(!_displayModeArray) {
|
|
|
- _displayModeArray = @[@(CDisplayPDFTypeSinglePage),
|
|
|
+ _displayModeArray = @[
|
|
|
+ @(CDisplayPDFTypeVerticalScrolling),
|
|
|
+ @(CDisplayPDFTypeHorizontalScrolling),
|
|
|
+ @(CDisplayPDFTypeSinglePage),
|
|
|
@(CDisplayPDFTypeTwoPages),
|
|
|
@(CDisplayPDFTypeBookMode),
|
|
|
@(CDisplayPDFTypeContinuousScroll),
|
|
|
- @(CDisplayPDFTypeCropMode),
|
|
|
- @(CDisplayPDFTypeVerticalScrolling)];
|
|
|
+ @(CDisplayPDFTypeCropMode)];
|
|
|
}
|
|
|
return _displayModeArray;
|
|
|
}
|
|
@@ -259,14 +312,19 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
#pragma mark - UITableViewDataSource
|
|
|
|
|
|
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
|
|
|
- return 2;
|
|
|
+ return 4;
|
|
|
}
|
|
|
|
|
|
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
|
|
|
- if (0 == section)
|
|
|
- return self.displayModeArray.count;
|
|
|
- else
|
|
|
- return self.themesArray.count;
|
|
|
+ if(section == 0){
|
|
|
+ return 2;
|
|
|
+ }else if(section == 1){
|
|
|
+ return 3;
|
|
|
+ }else if(section == 2){
|
|
|
+ return 2;
|
|
|
+ }else{
|
|
|
+ return 4;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
@@ -277,33 +335,46 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
}
|
|
|
|
|
|
CPDFDisplayModel *model = nil;
|
|
|
- if(0 == indexPath.section) {
|
|
|
+
|
|
|
+ if(indexPath.section == 0){
|
|
|
model = [[CPDFDisplayModel alloc]initWithType:[[self.displayModeArray objectAtIndex:indexPath.row] integerValue]];
|
|
|
- } else {
|
|
|
+ }else if(indexPath.section == 1){
|
|
|
+ model = [[CPDFDisplayModel alloc]initWithType:[[self.displayModeArray objectAtIndex:indexPath.row + 2] integerValue]];
|
|
|
+ }else if(indexPath.section == 2){
|
|
|
+ model = [[CPDFDisplayModel alloc]initWithType:[[self.displayModeArray objectAtIndex:indexPath.row + 5] integerValue]];
|
|
|
+ }else{
|
|
|
model = [[CPDFDisplayModel alloc]initWithType:[[self.themesArray objectAtIndex:indexPath.row] integerValue]];
|
|
|
}
|
|
|
|
|
|
switch (model.tag) {
|
|
|
case CDisplayPDFTypeSinglePage:
|
|
|
+ cell.modeSwitch.hidden = YES;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if([self isSinglePage])
|
|
|
cell.checkImageView.hidden = NO;
|
|
|
break;
|
|
|
case CDisplayPDFTypeTwoPages:
|
|
|
+ cell.modeSwitch.hidden = YES;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if([self isTwoPage])
|
|
|
cell.checkImageView.hidden = NO;
|
|
|
break;
|
|
|
case CDisplayPDFTypeBookMode:
|
|
|
+ cell.modeSwitch.hidden = YES;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if([self isBookMode])
|
|
|
cell.checkImageView.hidden = NO;
|
|
|
break;
|
|
|
case CDisplayPDFTypeContinuousScroll:
|
|
|
cell.modeSwitch.hidden = NO;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if(self.pdfview.displaysPageBreaks)
|
|
|
[cell.modeSwitch setOn:YES animated:NO];
|
|
|
else
|
|
|
[cell.modeSwitch setOn:NO animated:NO];
|
|
|
break;
|
|
|
case CDisplayPDFTypeCropMode:
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
cell.modeSwitch.hidden = NO;
|
|
|
if(self.pdfview.displayCrop)
|
|
|
[cell.modeSwitch setOn:YES animated:NO];
|
|
@@ -312,6 +383,7 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
break;
|
|
|
case CDisplayPDFTypeVerticalScrolling:
|
|
|
cell.modeSwitch.hidden = NO;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if(CPDFDisplayDirectionVertical == self.pdfview.displayDirection)
|
|
|
[cell.modeSwitch setOn:YES animated:NO];
|
|
|
else
|
|
@@ -319,18 +391,26 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
|
|
|
break;
|
|
|
case CDisplayPDFTypeThemesLight:
|
|
|
+ cell.modeSwitch.hidden = YES;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if(CPDFDisplayModeNormal == self.pdfview.displayMode)
|
|
|
cell.checkImageView.hidden = NO;
|
|
|
break;
|
|
|
case CDisplayPDFTypeThemesDark:
|
|
|
+ cell.modeSwitch.hidden = YES;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if(CPDFDisplayModeNight == self.pdfview.displayMode)
|
|
|
cell.checkImageView.hidden = NO;
|
|
|
break;
|
|
|
case CDisplayPDFTypeThemesSepia:
|
|
|
+ cell.modeSwitch.hidden = YES;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if(CPDFDisplayModeSoft == self.pdfview.displayMode)
|
|
|
cell.checkImageView.hidden = NO;
|
|
|
break;
|
|
|
case CDisplayPDFTypeThemesReseda:
|
|
|
+ cell.modeSwitch.hidden = YES;
|
|
|
+ cell.checkImageView.hidden = YES;
|
|
|
if(CPDFDisplayModeGreen == self.pdfview.displayMode)
|
|
|
cell.checkImageView.hidden = NO;
|
|
|
break;
|
|
@@ -340,8 +420,8 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
- cell.imageView.image = model.image;
|
|
|
- cell.textLabel.text = model.titilName?:@"";
|
|
|
+ cell.iconImageView.image = model.image;
|
|
|
+ cell.titleLabel.text = model.titilName?:@"";
|
|
|
__block typeof(self) blockSelf = self;
|
|
|
__block CPDFDisplayTableViewCell * blockCell = cell;
|
|
|
|
|
@@ -372,18 +452,28 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
}
|
|
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
|
|
|
- return 60.0;
|
|
|
+ return 44;
|
|
|
}
|
|
|
|
|
|
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
|
|
|
- if(0 == section)
|
|
|
+
|
|
|
+ if(section == 0){
|
|
|
return NSLocalizedString(@"Display Mode",nil);
|
|
|
- else
|
|
|
+ }else if(section == 1){
|
|
|
+ return @"";
|
|
|
+ }else if(section == 2){
|
|
|
+ return @"";
|
|
|
+ }else{
|
|
|
return NSLocalizedString(@"Themes",nil);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
|
|
|
- return 30.0;
|
|
|
+ if(section == 1 || section == 2){
|
|
|
+ return 10;
|
|
|
+ }else{
|
|
|
+ return 30.0;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
#pragma mark - UITableViewDelegate
|
|
@@ -392,10 +482,16 @@ typedef NS_ENUM(NSUInteger, CDisplayPDFType) {
|
|
|
[tableView deselectRowAtIndexPath:indexPath animated:YES];
|
|
|
|
|
|
CDisplayPDFType type = CDisplayPDFTypeCropMode;
|
|
|
- if(0 == indexPath.section)
|
|
|
+
|
|
|
+ if(indexPath.section == 0){
|
|
|
type = (CDisplayPDFType)[[self.displayModeArray objectAtIndex:indexPath.row] integerValue];
|
|
|
- else
|
|
|
+ }else if(indexPath.section == 1) {
|
|
|
+ type = (CDisplayPDFType)[[self.displayModeArray objectAtIndex:indexPath.row + 2] integerValue];
|
|
|
+ }else if(indexPath.section == 2) {
|
|
|
+ type = (CDisplayPDFType)[[self.displayModeArray objectAtIndex:indexPath.row + 5] integerValue];
|
|
|
+ }else {
|
|
|
type = (CDisplayPDFType)[[self.themesArray objectAtIndex:indexPath.row] integerValue];
|
|
|
+ }
|
|
|
|
|
|
switch (type) {
|
|
|
case CDisplayPDFTypeSinglePage:
|