From 5ac9d9ee787c0dd8ac6ffeb72e73f226ae8271bc Mon Sep 17 00:00:00 2001 From: Wojciech Nagrodzki <278594+wnagrodzki@users.noreply.github.com> Date: Sat, 4 Oct 2014 14:06:44 +0200 Subject: [PATCH] Uses autoresizing mask to layout presentation view controller view to work around a bug during device rotation on iOS 7. --- .../NGModalAnimationController.m | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/ModalPresentation/Custom Modal Presentation/NGModalAnimationController.m b/ModalPresentation/Custom Modal Presentation/NGModalAnimationController.m index 4c5a308..95c299b 100644 --- a/ModalPresentation/Custom Modal Presentation/NGModalAnimationController.m +++ b/ModalPresentation/Custom Modal Presentation/NGModalAnimationController.m @@ -64,26 +64,10 @@ static NSTimeInterval const kTransitionDuration = 2; // add toView into the view hierarchy when presenting if (self.mode == NGModalAnimationControllerModePresentation) { + // using constraints instead coused a bug during device rotation on iOS 7 + toView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; + toView.frame = containerView.bounds; [containerView addSubview:toView]; - - toView.translatesAutoresizingMaskIntoConstraints = NO; - NSDictionary * views = NSDictionaryOfVariableBindings(toView); - [containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[toView]|" options:0 metrics:nil views:views]]; - [containerView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[toView]|" options:0 metrics:nil views:views]]; - - NSLog(@"CSModalAnimationControllerModePresentation"); - NSLog(@"fromView initial frame %@", NSStringFromCGRect([transitionContext initialFrameForViewController:fromViewController])); - NSLog(@"fromView final frame %@", NSStringFromCGRect([transitionContext finalFrameForViewController:fromViewController])); - NSLog(@"toView initial frame %@", NSStringFromCGRect([transitionContext initialFrameForViewController:toViewController])); - NSLog(@"toView final frame %@", NSStringFromCGRect([transitionContext finalFrameForViewController:toViewController])); - } - else - { - NSLog(@"NGModalAnimationControllerModeDismissal"); - NSLog(@"fromView initial frame %@", NSStringFromCGRect([transitionContext initialFrameForViewController:fromViewController])); - NSLog(@"fromView final frame %@", NSStringFromCGRect([transitionContext finalFrameForViewController:fromViewController])); - NSLog(@"toView initial frame %@", NSStringFromCGRect([transitionContext initialFrameForViewController:toViewController])); - NSLog(@"toView final frame %@", NSStringFromCGRect([transitionContext finalFrameForViewController:toViewController])); } // find the presented view controller's view