iOS 15 ナビゲーションバーの設定#
背景#
Xcode 13.0 を使用してプロジェクトを iOS 15 の携帯電話で実行すると、ナビゲーションバーが黒く表示されます。ただし、低いバージョンの Xcode を使用して携帯電話で実行すると問題ありません。
変更#
設定方法を変更する必要があります。barTintColor not working in iOS 15を参照してください。
以前のナビゲーションバーコードは変更せずに、UINavigationBarAppearance のインスタンスオブジェクトのプロパティを設定し、グローバルな navigationBar または個々のページの navigaitonBar プロパティに割り当てます。これは、プロジェクトの設定がグローバルな NavigationBar であるか、個々のページの設定であるかによります(iOS StatusBar の設定を参照してください)。
以下はコードです:
- (void)updateNavigationBarColor:(UIColor *)color {
UINavigationBar *bar = self.navigationController.navigationBar;
if (@available(iOS 13.0, *)) {
UINavigationBarAppearance *barAppearance = [UINavigationBarAppearance new];
barAppearance.backgroundColor = color; // 背景色の設定
barAppearance.titleTextAttributes = @{NSForegroundColorAttributeName : [UIColor whiteColor],
NSFontAttributeName : [UIFont fontWithName:@"Helvetica-Bold" size:17]}; // ナビゲーションバーのテキストの色とサイズの設定
barAppearance.shadowColor = [UIColor clearColor]; // ナビゲーションバーの下部の区切り線を非表示にする
bar.scrollEdgeAppearance = bar.standardAppearance = barAppearance;
[bar setShadowImage:[UIImage new]];
} else {
// 以前のバージョンでは動作しません
}
[bar setBackgroundImage:[UIImage wps_createImageWithColor:color] forBarMetrics:UIBarMetricsDefault];
}