情况如下:
我正在使用Autolayout和UINavigationController制作适用于iOS 6的iPad应用程序。我想做的是:
使用标准push segue从一个视图控制器查询到下一个视图控制器。 当我到达新视图控制器时,使用动画隐藏导航栏。 当导航栏隐藏时,我希望我的观点根本不会改变。事实上,我希望我的视图从一开始就有效地绘制在导航栏下方,所以我没有内容的移动或移动,也没有黑条。作为参考,当你进入一本书时,亚马逊Kindle应用程序就会发生这种情况。
使用我当前的代码,我的视图内容向上移动以填充UINavigationBar留下的空白。
我尝试将我的UIViewController视图的框架和我的UINavigationController的视图强制设置到我的viewcontroller的viewWillAppear方法中的整个iPad屏幕,但没有骰子。我已经在Autolayout中尝试了W / Constraints,但这也没让我到达我想去的地方。
你能给予的任何帮助都会很棒!
答案 0 :(得分:0)
在动画导航栏之前尝试按照:
self.navigationController.navigationBar.alpha = 0.99f;
我没试过,但这应该有效。
答案 1 :(得分:0)
您似乎需要在新视图中添加自定义导航栏并将其设置为动画消失。
我认为,隐藏导航控制器的原始导航栏而不移动视图是不可能的。
而是将UINavigationBar添加到xib文件,将其绑定到IBOutlet uiNavigationBar并尝试使用代码
-(void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:NO];
}
- (void) viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[UIView animateWithDuration:0.3f delay:0.0f options:UIViewAnimationOptionCurveEaseInOut animations:^{
CGRect f = self.uiNavigationBar.frame;
f.origin = CGPointMake(f.origin.x, f.origin.y - 44);
self.uiNavigationBar.frame = f;
} completion:^(BOOL finished) {
NSLog(@"done");
}];
}