返回前台时导航栏位置重置
Navigationbar position reset when turn back to foreground
我在 viewWillAppear
的第一个 ViewContoller 中设置了导航栏
self.navigationController.navigationBar.frame = CGRectMake(0.0, 64.0, self.navigationController.view.bounds.size.width, 44.0);
它让我在栏上方放置一个徽标。
但是当我将应用程序切换到后台并返回时,导航栏位置重置为顶部。
我试过 addObserver 捕获UIApplicationWillEnterForegroundNotification
并再次设置导航栏的框架。但它不起作用。
请帮忙,
非常感谢。
您可以尝试更改 NavigationBar
的外观,它会反映在整个应用程序中
[[UINavigationBar appearance] setFrame:];
如果需要,您可以更改其背景图片
[[UINavigationBar appearance] setBackgroundImage:forBarMetrics:];
我找到了解决方案。
子类 UINavigationBar.
执行 - (CGSize)sizeThatFits:(CGSize)size
方法来更改导航栏大小。
比如
- (CGSize)sizeThatFits:(CGSize)size {
CGSize newSize = self.window.bounds.size ;
newSize.height = 91;
return newSize;
}
效果很好。
我在 viewWillAppear
self.navigationController.navigationBar.frame = CGRectMake(0.0, 64.0, self.navigationController.view.bounds.size.width, 44.0);
它让我在栏上方放置一个徽标。
但是当我将应用程序切换到后台并返回时,导航栏位置重置为顶部。
我试过 addObserver 捕获UIApplicationWillEnterForegroundNotification
并再次设置导航栏的框架。但它不起作用。
请帮忙, 非常感谢。
您可以尝试更改 NavigationBar
的外观,它会反映在整个应用程序中
[[UINavigationBar appearance] setFrame:];
如果需要,您可以更改其背景图片
[[UINavigationBar appearance] setBackgroundImage:forBarMetrics:];
我找到了解决方案。
子类 UINavigationBar.
执行
- (CGSize)sizeThatFits:(CGSize)size
方法来更改导航栏大小。
比如
- (CGSize)sizeThatFits:(CGSize)size {
CGSize newSize = self.window.bounds.size ;
newSize.height = 91;
return newSize;
}
效果很好。