web-dev-qa-db-ja.com

iOS 13 - ナビゲーションバーのタイトルカラーに関する問題

私はいくつかのViewControllersとTabbarControllerを持つストーリーボードアプリを持っています。今までにナビゲーションバーのタイトルの色は白でした。今、私はXcode 11 Beta 6でテストしています.IOS 13ベータ8とタイトルは黒です。 iOS 12を持つデバイスでは、タイトルはまだ白です。ストーリーボードのナビゲーションコントローラのナビゲーションバーにタイトル色を設定しようとしました。しかし、これは違いはありません。私はまたすべてのビューでタイトルの色を変更しようとしましたが、時にはうまくいかないことがあります。 iOS 13でのテストの開始時に、私はステータスバーの背景色を変更するためのコードを変更しなければなりませんでした。コードはこれです。

self.tabBarController.title = NSLocalizedString(@"AppTitle",nil);

NSShadow *shadow = [[NSShadow alloc] init];
shadow.shadowColor = [UIColor clearColor];
shadow.shadowOffset = CGSizeMake(0, 1);

[self.navigationController.navigationBar setBarTintColor:COLOR_HEADER_LIGHT];

if (@available(iOS 13, *))
{
    UINavigationBarAppearance *navBar = [[UINavigationBarAppearance alloc] init];
    navBar.backgroundColor = COLOR_HEADER_LIGHT;
    self.navigationController.navigationBar.standardAppearance = navBar;
    self.navigationController.navigationBar.scrollEdgeAppearance = navBar;
}
else
{
    UIView *statusBar = [[[UIApplication sharedApplication] valueForKey:@"statusBarWindow"] valueForKey:@"statusBar"];
    if ([statusBar respondsToSelector:@selector(setBackgroundColor:)]) {
        statusBar.backgroundColor = COLOR_HEADER_LIGHT;
    }
}

[self.navigationController.navigationBar setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                                                 shadow, NSShadowAttributeName, FONT_MEDIUM_SIZE_18, NSFontAttributeName,
                                                                 COLOR_TEXT_WHITE, NSForegroundColorAttributeName, nil]];

[self.navigationController.navigationBar setTintColor:COLOR_TEXT_WHITE];
 _

誰かがタイトルの色を白に変更する方法を考えていることを願っています。すべてのコントローラを調整することなく最もよい場合です。

7
Henning

IOS13では、UinavigationBarAppearanceオブジェクトのタイトル色を設定する必要があります。この行をコードに追加してみてください。

appearance.titleTextAttributes = [.foregroundColor: myAppLabelColor]
appearance.largeTitleTextAttributes = [.foregroundColor: myAppLabelColor]
 _
0
DaVinci

IOS 13では、このようなタイトルの色を変更します

UINavigationBarAppearance *appearance = [self.navigationController.navigationBar standardAppearance];
appearance.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor whiteColor]};
self.navigationController.navigationBar.standardAppearance = appearance;
self.navigationController.navigationBar.scrollEdgeAppearance = appearance;
 _
3

iOS 13は、光と暗いテーマに動的色を使用しています。軽い外観の色資産を作成することでタイトル色を設定できます。

0
Frankenxtein