今是昨非

今是昨非

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

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 {
        // Fallback on earlier versions
    }
    [bar setBackgroundImage:[UIImage wps_createImageWithColor:color] forBarMetrics:UIBarMetricsDefault];
}

參考#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。