xcode14 導航欄(navigationbar)和toolbar 樣式異常問題


Demo地址
Demo中包含本人學習的所有資料,還有一些封裝的Pod組件,歡迎下載Star,如果有錯誤的地方,還請指出,詳情查看 README.md


問題:xcode14 使用
self.navigationBar.barTintColor = mainColor;
self.toolbar.barTintColor = mainColor;
方式配置背景色出現(xiàn)異常問題,具體表現(xiàn)為列表滾動到邊緣地帶,導航欄、toolbar背景色變成透明。

更新了xcode14后,運行我的項目,發(fā)現(xiàn)相冊選擇功能的 navigationbartoolbar 的背景色在 tableview 滾動到邊緣的時候展示異常,變成了透明。隨后我下載了 iOS15 的模擬器,發(fā)現(xiàn)還是不對,就想到應該不是 iOS 系統(tǒng)版本的問題,猜測大概是 xcode 的問題。經過一系列問題排查和測試,發(fā)現(xiàn) xcode14navigationbartoolbar 的樣式需要使用 UIBarAppearance 來處理,不能在使用 barTintColor 來設置背景色,包括其他設置背景圖這些都不在適合。UIBarAppearanceiOS 13 后引入的新配置大概使用方法如下

- (void)configUIBarAppearance {
    if (@available(iOS 13.0, *)) {
        ///NaviBar
        UINavigationBarAppearance *naviBarAppearance = [[UINavigationBarAppearance alloc] init];
        if (self.navigationBar.isTranslucent) {
            UIColor *barTintColor = self.navigationBar.barTintColor;
            naviBarAppearance.backgroundColor = [barTintColor colorWithAlphaComponent:0.85];
        } else {
            naviBarAppearance.backgroundColor = self.navigationBar.barTintColor;
        }
        naviBarAppearance.titleTextAttributes = self.navigationBar.titleTextAttributes;
        self.navigationBar.standardAppearance = naviBarAppearance;
        self.navigationBar.scrollEdgeAppearance = naviBarAppearance;
        
        
        ///ToolBar
        UIToolbarAppearance *toolBarAppearance = [[UIToolbarAppearance alloc] init];
        if (self.toolbar.isTranslucent) {
            UIColor *barTintColor = self.toolbar.barTintColor;
            toolBarAppearance.backgroundColor = [barTintColor colorWithAlphaComponent:0.85];
        } else {
            toolBarAppearance.backgroundColor = self.navigationBar.barTintColor;
        }
        self.toolbar.standardAppearance = toolBarAppearance;
        if (@available(iOS 15.0, *)) {
            self.toolbar.scrollEdgeAppearance = toolBarAppearance;
        }
    }
}
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容