今是昨非

今是昨非

日出江花红胜火,春来江水绿如蓝

iOS 15のナビゲーションバーの設定

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];
}

参考#

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。