UIBarAppearance是iOS13蘋(píng)果新出來(lái)的一個(gè)對(duì)相應(yīng)的空間統(tǒng)一設(shè)置外觀樣式的API,可以統(tǒng)一配置NavigationBar 、TabBar、 Toolbar等的外觀樣式。
UIBarAppearance的子類
UINavigationBarAppearance 設(shè)置導(dǎo)航欄外觀樣式
UITabBarAppearance 設(shè)置Tabbar外觀樣式
UIToolbarAppearance 設(shè)置Toolbar外觀樣式
這里用導(dǎo)航條的UINavigationBarAppearance作為示例,TabBar和Toolbar的設(shè)置外觀樣式使用的方式與其相同
1.UINavigationBar默認(rèn)外觀樣式
iOS15以前默認(rèn)是半透明毛玻璃
iOS15以后默認(rèn)是透明冲杀,在滑動(dòng)時(shí)如果系統(tǒng)檢測(cè)到導(dǎo)航欄下方有其他UI的話效床,導(dǎo)航欄會(huì)變成半透明毛玻璃,想要默認(rèn)半透明毛玻璃权谁,設(shè)置standardAppearance和scrollEdgeAppearance剩檀,單獨(dú)設(shè)置standardAppearance也不行
let navBarAppearance = UINavigationBarAppearance()
navigationBar.scrollEdgeAppearance = navBarAppearance
navigationBar.standardAppearance= navBarAppearance
2.UINavigationBar相關(guān)屬性說(shuō)明
barTintColor?導(dǎo)航欄背景顏色
iOS15以前設(shè)置有效果
iOS15以后無(wú)效果需要設(shè)置UINavigationBarAppearance的backgroundColor
tintColor?導(dǎo)航欄文字 顏色
isTranslucent 半透明
默認(rèn)為YES,當(dāng)設(shè)為YES旺芽,iOS15以前先取barTintColor的顏色沪猴,當(dāng)barTintColor為nil默認(rèn)半透明毛玻璃,iOS15先取UINavigationBarAppearance的backgroundColor顏色采章,當(dāng)UINavigationBarAppearance的backgroundColor為nil运嗜,UINavigationBarAppearance的backgroundEffect默認(rèn)半透明毛玻璃,當(dāng)UINavigationBarAppearance的backgroundEffect為nil背景為透明
當(dāng)設(shè)為NO悯舟,iOS15以前先取barTintColor的顏色担租,當(dāng)barTintColor為nil默認(rèn)白色,iOS15先取UINavigationBarAppearance的backgroundColor顏色抵怎,當(dāng)UINavigationBarAppearance的backgroundColor為nil奋救,UINavigationBarAppearance的backgroundEffect默認(rèn)背景為灰色,當(dāng)UINavigationBarAppearance的backgroundEffect為nil背景為黑色
shadowImage 下劃線
iOS13以前設(shè)置有效果,不過(guò)需要同時(shí)設(shè)置backgroundImage反惕,會(huì)影響導(dǎo)航欄背景尝艘,不建議
iOS13以后無(wú)效果需要設(shè)置UINavigationBarAppearance的shadowColor和shadowImage
scrollEdgeAppearance iOS15
當(dāng)可滾動(dòng)內(nèi)容的邊緣與導(dǎo)航欄的邊緣對(duì)齊時(shí),導(dǎo)航欄的外觀設(shè)置姿染。如果這個(gè)屬性的值為nil, UIKit使用導(dǎo)航欄的standardAppearance外觀屬性的值背亥,修改為有一個(gè)透明的背景
standardAppearance?iOS13
設(shè)置導(dǎo)航欄標(biāo)準(zhǔn)高度的樣式設(shè)置,默認(rèn)樣式悬赏。此屬性的默認(rèn)值是一個(gè)包含系統(tǒng)默認(rèn)外觀設(shè)置的外觀對(duì)象
3.UINavigationBarAppearance相關(guān)屬性說(shuō)明
backgroundEffect
半透明效果狡汉,基于backgroundColor或backgroundImage的磨砂效果
backgroundColor
背景色
backgroundImage
背景圖片
backgroundImageContentMode
渲染backgroundImage時(shí)使用的內(nèi)容模式。 默認(rèn)為UIViewContentModeScaleToFill舷嗡。
shadowColor
陰影顏色(底部分割線)轴猎,當(dāng)shadowImage為nil時(shí)嵌莉,直接使用此顏色為陰影色进萄。如果此屬性為nil或clearColor(需要顯式設(shè)置),則不顯示陰影
shadowImage
陰影圖片