今是昨非

今是昨非

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

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

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

背景#

Xcode 13.0 を使用してプロジェクトを iOS 15 の携帯電話に実行すると、ナビゲーションバーが黒くなります。しかし、低バージョンの Xcode で携帯電話に実行すると問題はありません。

修正#

設定方法を変更する必要があります。参考にしてくださいbarTintColor not working in iOS 15

元のナビゲーションバー設定コードはそのままで、UINavigationBarAppearance インスタンスオブジェクトのプロパティを新たに設定し、それをグローバルの navigationBar または単一ページの navigationBar プロパティに割り当てます。これはプロジェクトの設定がグローバル 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];
}

参考#

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