抱歉冗长的描述 -
我工作的应用程序是2岁。因为我们想要支持iOS 11.在特定的视图控制器上,我们需要以180度旋转屏幕。 为此,我们使用了 -
[[[UIApplication sharedApplication] delegate] window].transform = CGAffineTransformMakeRotation(M_PI);
通过这种方式我们实际上改变了窗口。
在iOS11.0之前它运行良好。在iOS 11中,当我们再次转换为原始视图时,状态栏出现问题。
因此,要解决此问题,我要更改导航栏的颜色以及状态栏,
#import "UINavigationController+Utilities.h"
@implementation UINavigationController (Utilities)
UIView *view;
-(void)setStatusBackground:(UIColor *)color
{
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"11.0"))
{
if (view == nil) {
view = [[UIView alloc] initWithFrame: CGRectMake(0, 0, DEVICE_SCREEN_WIDTH, 20)] ;
view.backgroundColor = color;
[self.view addSubview:view];
}
view.backgroundColor = color;
}
}
@end
将导航栏的背景颜色更改为蓝色。
[self.navigationController.navigationBar setBarTintColor:HCCOLOR_BLUE]; [self.navigationController setStatusBackground:HCCOLOR_BLUE];
但两者的颜色并不相同。它看起来没什么不同。
答案 0 :(得分:0)
这可能是因为您的导航栏可能是半透明的
试试self.navigationController.navigationBar.translucent = NO;