转换后查看更改高度

时间:2013-04-03 23:19:00

标签: objective-c uiview uiviewcontroller uiviewanimationtransition

我正在使用UIViewAnimationOptionTransitionCrossDisolve从一个视图转换到另一个视图。

我遇到的问题是,在转换生效后,我的屏幕顶部有一个20像素的间隙,新的UIViewController向上推,所以屏幕看起来很正常。

我该如何解决这个问题?

这是我的转换代码:

- (IBAction)logInButtonTapped
{
    [self performTransition:UIViewAnimationOptionTransitionCrossDissolve];
}

-(void)performTransition:(UIViewAnimationOptions)options
{
    //Step 1:  Create your Controllers
    _frontViewController = [[UINavigationController alloc] initWithRootViewController:[[ViewController alloc] init]];
    NSLog(@"ViewController Frame: %@", NSStringFromCGRect(_frontViewController.view.frame));
    _frontViewController.wantsFullScreenLayout = NO;
    self.navigationController.navigationBar.frame = CGRectOffset(self.navigationController.navigationBar.frame, 0.0, -20.0);
    UIViewController * leftViewController = [[LeftSideViewController alloc] init];

    //Step 2:  Instantiate your PKRevealController
    self.revealController = [PKRevealController revealControllerWithFrontViewController:_frontViewController leftViewController:leftViewController rightViewController:nil options:nil];

    UIView * fromView, *toView;

    if ([self.view superview] != nil)
    {
        fromView = self.view;

        toView = self.revealController.view;

        NSLog(@"After Transition ViewController Frame: %@", NSStringFromCGRect(_frontViewController.view.frame));
    }

    [UIView transitionFromView:fromView toView:toView duration:0.5
                       options:options completion:^(BOOL finished){}];
}

这是我的NSLog的节目:

2013-04-03 18:14:30.560 AppName[24631:c07] {{0, 0}, {320, 548}}
2013-04-03 18:14:31.691 AppName[24631:c07] ViewController Frame: {{0, 0}, {320, 568}}
2013-04-03 18:14:31.692 AppName[24631:c07] After Transition ViewController Frame: {{0, 0}, {320, 548}}

1 个答案:

答案 0 :(得分:0)

我解决了我的问题。我必须将wantsFullScreenLayout设置为YES。