diff --git a/PaperFold/PaperFold/PaperFold/MultiFoldView.m b/PaperFold/PaperFold/PaperFold/MultiFoldView.m index ca45bf2..eaf8b24 100644 --- a/PaperFold/PaperFold/PaperFold/MultiFoldView.m +++ b/PaperFold/PaperFold/PaperFold/MultiFoldView.m @@ -99,6 +99,7 @@ - (void)setFrame:(CGRect)frame float foldWidth = frame.size.width/self.numberOfFolds; FoldView *foldView = [[FoldView alloc] initWithFrame:CGRectMake(foldWidth*i,0,foldWidth,frame.size.height) foldDirection:_foldDirection]; [foldView setTag:FOLDVIEW_TAG+i]; + [foldView setHidden:!self.contentViewHolder.hidden]; [self addSubview:foldView]; } else if (_foldDirection==FoldDirectionVertical) @@ -106,6 +107,7 @@ - (void)setFrame:(CGRect)frame float foldHeight = frame.size.height/self.numberOfFolds; FoldView *foldView = [[FoldView alloc] initWithFrame:CGRectMake(0,foldHeight*(self.numberOfFolds-i)-foldHeight,frame.size.width,foldHeight) foldDirection:_foldDirection]; [foldView setTag:FOLDVIEW_TAG+i]; + [foldView setHidden:!self.contentViewHolder.hidden]; [self addSubview:foldView]; } } diff --git a/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.h b/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.h index 06c94e0..42c95d4 100644 --- a/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.h +++ b/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.h @@ -10,6 +10,9 @@ #import "PaperFoldView.h" @interface PaperFoldNavigationController : UIViewController +@property (nonatomic, copy, readonly) NSString *rootViewControllerID, *leftViewControllerID, *rightViewControllerID; +@property (nonatomic, copy, readonly) NSNumber *leftViewWidth; +@property (nonatomic, copy, readonly) NSNumber *rightViewWidth, *rightViewFoldCount, *rightViewPullFactor; @property (nonatomic, strong) UIViewController *rootViewController, *leftViewController, *rightViewController; @property (nonatomic, strong) PaperFoldView *paperFoldView; - (id)initWithRootViewController:(UIViewController*)rootViewController; diff --git a/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.m b/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.m index bf4d010..da1fd46 100644 --- a/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.m +++ b/PaperFold/PaperFold/PaperFold/PaperFoldNavigationController.m @@ -14,6 +14,36 @@ @interface PaperFoldNavigationController () @implementation PaperFoldNavigationController +- (void)awakeFromNib { + [super awakeFromNib]; + + if (self.rootViewControllerID) { + self.rootViewController = [self.storyboard instantiateViewControllerWithIdentifier:self.rootViewControllerID]; + [self initWithRootViewController:self.rootViewController]; + } + if (self.leftViewControllerID) { + int leftWidth = 150; + + if (self.leftViewWidth) leftWidth = [self.leftViewWidth intValue]; + + self.leftViewController = [self.storyboard instantiateViewControllerWithIdentifier:self.leftViewControllerID]; + [self setLeftViewController:self.leftViewController width:leftWidth]; + } + if (self.rightViewControllerID) { + int rightWidth = 250; + int rightFoldCount = 3; + float rightPullFactor = .9f; + + if (self.rightViewWidth) rightWidth = [self.rightViewWidth intValue]; + if (self.rightViewFoldCount) rightFoldCount = [self.rightViewFoldCount intValue]; + if (self.rightViewPullFactor) rightPullFactor = [self.rightViewPullFactor floatValue]; + + self.rightViewController = [self.storyboard instantiateViewControllerWithIdentifier:self.rightViewControllerID]; + [self setRightViewController:self.rightViewController width:rightWidth rightViewFoldCount:rightFoldCount rightViewPullFactor:rightPullFactor]; + } + +} + - (id)initWithRootViewController:(UIViewController*)rootViewController { self = [super init]; @@ -39,7 +69,7 @@ - (void)setRightViewController:(UIViewController*)rightViewController width:(flo _rightViewController = rightViewController; [self.rightViewController.view setFrame:CGRectMake(0,0,width,[self.view bounds].size.height)]; - [self.paperFoldView setRightFoldContentView:self.rightViewController.view foldCount:rightViewFoldCount pullFactor:rightViewFoldCount]; + [self.paperFoldView setRightFoldContentView:self.rightViewController.view foldCount:rightViewFoldCount pullFactor:rightViewPullFactor]; } - (void)setLeftViewController:(UIViewController *)leftViewController width:(float)width diff --git a/PaperFold/PaperFold/PaperFold/PaperFoldView.m b/PaperFold/PaperFold/PaperFold/PaperFoldView.m index 9a303e0..f0e236e 100644 --- a/PaperFold/PaperFold/PaperFold/PaperFoldView.m +++ b/PaperFold/PaperFold/PaperFold/PaperFoldView.m @@ -601,6 +601,8 @@ - (void)unfoldLeftView:(NSTimer*)timer [self.bottomFoldView setHidden:YES]; [self.leftFoldView setHidden:NO]; [self.rightFoldView setHidden:NO]; + + self.paperFoldInitialPanDirection = PaperFoldInitialPanDirectionHorizontal; CGAffineTransform transform = [self.contentView transform]; float x = transform.tx + (self.leftFoldView.frame.size.width-transform.tx)/4; @@ -661,6 +663,8 @@ - (void)unfoldRightView:(NSTimer*)timer [self.leftFoldView setHidden:NO]; [self.rightFoldView setHidden:NO]; + self.paperFoldInitialPanDirection = PaperFoldInitialPanDirectionHorizontal; + CGAffineTransform transform = [self.contentView transform]; float x = transform.tx - (transform.tx+self.rightFoldView.frame.size.width)/8; transform = CGAffineTransformMakeTranslation(x, 0);