Objective-C:即使我在iOS 11中设置了相同的颜色,状态栏颜色和导航颜色也不一样

时间:2017-12-29 12:10:19

标签: objective-c uinavigationbar ios11

  

抱歉冗长的描述 -

我工作的应用程序是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];

但两者的颜色并不相同。它看起来没什么不同。

我正在添加图片 - Screen shot of navigation bar

1 个答案:

答案 0 :(得分:0)

这可能是因为您的导航栏可能是半透明的 试试self.navigationController.navigationBar.translucent = NO;