导航栏更改高度
Posted
技术标签:
【中文标题】导航栏更改高度【英文标题】:Navigation Bar Changes Height 【发布时间】:2015-09-05 15:20:34 【问题描述】:当我将 UIViewController
从之前的控制器推送到屏幕时,它会为更改设置动画。但是当它完成加载时,它会调整我的导航栏的大小,并且跳跃的过渡使它看起来很糟糕。我怎样才能解决这个问题?我所做的只是在viewWillAppear
的控制器A 中隐藏导航栏,并在viewDidLoad
的控制器B 中显示它。
【问题讨论】:
【参考方案1】:好的解决了。在控制器 B(我正在推送的视图控制器)的 viewDidLoad
中添加以下内容:
UINavigationBar *navigationBar = self.navigationController.navigationBar;
[navigationBar setBackgroundImage:[UIImage new]
forBarPosition:UIBarPositionAny
barMetrics:UIBarMetricsDefault];
[navigationBar setShadowImage:[UIImage new]];
然后在您的UIViewController
的 XIB 中对导航栏进行高度限制并将其设置为 68(从测试来看,实际行似乎在 68 和 69 之间)。光滑如丝。
编辑:如果有人有更好的想法,请添加它们。我将不得不修改这个屏幕旋转解决方案,所以它并不完美。
【讨论】:
【参考方案2】:您可以像这样在 控制器 A 中执行所有操作:
- (void)viewWillAppear:(BOOL)animated
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
- (void)viewWillDisappear:(BOOL)animated
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
【讨论】:
它仍然调整了导航栏的大小。动画使它看起来更好,但我仍然希望根本不调整导航栏的高度。以上是关于导航栏更改高度的主要内容,如果未能解决你的问题,请参考以下文章