Изменить цвет фона строки состояния iOS 13 - PullRequest
0 голосов
/ 12 апреля 2020

Так что я возился с проектом, убивающим время и пытающимся укрепить свои «навыки», и это подводит меня к моему вопросу.

У меня все работает. Работал над ошибкой «keyWindow устарела в iOS 13.0».

Я использую только Objective- C в своем проекте, так как это то, что у меня на данный момент лучше всего известно.

Текущий способ:

-(UIColor*)statusBarColor
{
    UIColor *color = [UIColor colorWithRed:45/255.0f green:45/255.0f blue:45/255.0f alpha:1.0f];
    return color;
}

- (void)setStatusBarBackgroundColor:(UIColor *)color
{
    if (@available(iOS 13, *)) {
        UIView *view = [[UIView alloc]initWithFrame:[[UIApplication sharedApplication] delegate].window.windowScene.statusBarManager.statusBarFrame] ;
        [[[UIApplication sharedApplication] delegate].window addSubview:view];

        if ([view respondsToSelector:@selector(setBackgroundColor:)]) {
            view.backgroundColor = color;
        }
    }
}

Затем я вызываю блок в моем viewDidLoad / viewWillAppear.

[self setStatusBarBackgroundColor:[self statusBarColor]];

Так что я думаю, что мой главный вопрос будет, если есть лучший способ достичь это? Конкретно в Objective- C? и будет ли это безопасно для AppStore, если я решу отправить его в конце?

Спасибо.

...