IOS15之UINavigationBar背景顏色不全
環(huán)境
xcode 13
ios 15.0
系統(tǒng)升級(jí)到ios 15之后梳星,背景顏色,或者背景圖片必須滾動(dòng)的時(shí)候滚朵,才會(huì)顯示靜止?fàn)顟B(tài)的時(shí)候的樣式冤灾。蘋(píng)果在升級(jí)到ios13之后,進(jìn)行了重大調(diào)整辕近。來(lái)看看之前的寫(xiě)法
self.navigationController.navigationBar.translucent = NO;
//設(shè)置導(dǎo)航欄背景顏色
self.navigationController.navigationBar.barTintColor = k_main_nav_bar_color;
//設(shè)置導(dǎo)航欄字體大小
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:k_title_color,NSFontAttributeName:TEXT_BIG_S_FONT18}];
/*導(dǎo)航欄字體顏色*///左右鍵顏色圖標(biāo)默認(rèn)顏色
[self.navigationController.navigationBar setTintColor:k_title_color];
k開(kāi)頭的全部使用自己的宏定義韵吨。
新的寫(xiě)法:
if (@available(iOS 15.0, *)) {
UINavigationBarAppearance *appperance = [[UINavigationBarAppearance alloc] init];
//添加背景色
appperance.backgroundColor = k_main_tab_bar_color;
appperance.shadowImage = [[UIImage alloc]init];
appperance.shadowColor = nil;
//設(shè)置字體顏色大小
[appperance setTitleTextAttributes:@{NSForegroundColorAttributeName:k_title_color,NSFontAttributeName:TEXT_BIG_S_FONT18}];
self.navigationController.navigationBar.standardAppearance = appperance;
self.navigationController.navigationBar.scrollEdgeAppearance = appperance;
self.navigationController.navigationBar.compactAppearance = appperance;
self.navigationController.navigationBar.compactScrollEdgeAppearance = appperance;
}
compact堅(jiān)實(shí)的意思。堅(jiān)實(shí)的外表
standardAppearance標(biāo)準(zhǔn)的外表
scrollEdgeAppearance 滾動(dòng)邊緣的外表
compactScrollEdgeAppearance 滾動(dòng)堅(jiān)實(shí)的外表
蘋(píng)果對(duì)appearance 添加了4個(gè)屬性移宅,一般寫(xiě)standardAppearance和scrollEdgeAppearance即可归粉。
當(dāng)然以上是在viewController父類(lèi)中書(shū)寫(xiě)。如果全局是UINavigationController父類(lèi)下漏峰,如何書(shū)寫(xiě)呢糠悼。
- (void)viewDidLoad {
[super viewDidLoad];
if(@available(iOS 15.0,*)){
UINavigationBarAppearance * appearance = [[UINavigationBarAppearance alloc] init];
[appearance setBackgroundImage:[UIImage imageNamed:@"NavBar64"]];
[appearance setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:24 weight:UIFontWeightBold]}];
self.navigationBar.standardAppearance = appearance;
self.navigationBar.scrollEdgeAppearance = appearance;
}else{
[self.navigationBar setBackgroundImage:[UIImage imageNamed:@"NavBar64"] forBarMetrics:UIBarMetricsDefault];
[self.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName:[UIColor whiteColor],NSFontAttributeName:[UIFont systemFontOfSize:24 weight:UIFontWeightBold]}];
[self.navigationBar setTintColor:UIColor.whiteColor];
}
}
做一個(gè)系統(tǒng)適配