iOS 13 TabBar文字選中顏色變?yōu)樗{(lán)色問(wèn)題解決

問(wèn)題

前兩天升級(jí)了Xcode,昨天用模擬器一看,當(dāng)跳轉(zhuǎn)了某個(gè)控制器隱藏TabBar,再返回TabBar切換控制器的時(shí)候選中文字顏色竟然變藍(lán)色了!這……


正常的選中顏色

不正常的選中顏色

折磨

今天花了一點(diǎn)時(shí)間才找到原因。
找到顯示文字的label

 - (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController {
   UILabel *label = [[viewController.tabBarItem valueForKey:@"_view"] valueForKey:@"_label"];
 }

打斷點(diǎn)一看,發(fā)現(xiàn)有個(gè)屬性__textColorFollowsTintColor為true

label屬性

然后在iOS 12的模擬器一看__textColorFollowsTintColor為false。
原因應(yīng)該就在這了,可是用KVC改好像不優(yōu)雅。

在iOS7中,UIView新增了一個(gè)屬性tintColor,被使用在UIView中改變應(yīng)用程序的外觀的。默認(rèn)tintColor的值為nil,這表示它將會(huì)運(yùn)用父視圖層次的顏色來(lái)進(jìn)行著色。如果父視圖中沒(méi)有設(shè)置tintColor,那么默認(rèn)系統(tǒng)就會(huì)使用藍(lán)色。

所以修改父視圖tintColor應(yīng)該能解決問(wèn)題。


解決

//這里的self是UITabBarController,代碼根據(jù)各自的TabBar定義而定
self.tabBar.tintColor = selColor;

添加如上代碼,一看,解決了。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容