開(kāi)發(fā)中都會(huì)遇到tabBar上的圖片與文字顯示的顏色不對(duì)惫撰,應(yīng)該怎么去調(diào)整?
調(diào)整方式:
第一種.一起設(shè)置
//設(shè)置UITabBar的TintColor屬性
UITabBar.appearance().tintColor = UIColor.orangeColor()
這種方式可以把TabBar上顯示的圖片與文字的顏色一并設(shè)置
第二種.分開(kāi)設(shè)置
設(shè)置圖片:
設(shè)置圖片按原來(lái)的顏色渲染: 設(shè)置tabBarItem的selectedImage屬性的時(shí)候
//UIImageRenderingMode --> 渲染模式
//設(shè)置默認(rèn)的圖片
vc.hildController.tabBarItem.image = UIImage(named: imageName)?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal)
//設(shè)置選中的圖片
vc.tabBarItem.selectedImage = UIImage(named: "\(imageName)_selected")?.imageWithRenderingMode( UIImageRenderingMode.AlwaysOriginal)
也可以在Assets.xcassets目錄下躺涝,找到對(duì)應(yīng)圖片厨钻,利用右邊控制面板設(shè)置其渲染的模式:needpicture
設(shè)置文字:可以利用tabBarItem的setTitleTextAttributes方法給title添加屬性
//文字顏色的屬性
let textColorAttr = [
NSForegroundColorAttributeName: UIColor.orangeColor()
]
//設(shè)置選中文字顏色
vc.tabBarItem.setTitleTextAttributes(textColorAttr, forState: UIControlState.Selected)
可以利用這種方法調(diào)整UItabBar上的文字大小:
//設(shè)置字體的屬性
let textFontAttr = [
NSFontAttributeName: UIFont.systemFontOfSize(12)
]
vc.tabBarItem.setTitleTextAttributes(textFontAttr, forState: UIControlState.Normal)
注意:后面state是Normal
第2種方式更加靈活,可以應(yīng)對(duì)UITabBar上圖片顏色不一樣的設(shè)計(jì)
第三種.和(UI設(shè)計(jì)師,一定要叫設(shè)計(jì)師)搞好關(guān)系
目的:讓她把文字與圖標(biāo)切在一張圖片上,如圖:
Snip20160721_15.png
這個(gè)時(shí)候我們只設(shè)置tabBarItem的image(或者selectedImage)的話莉撇,圖片會(huì)顯示 在上半部分的位置:
Snip20160721_16.png
解決方法:
//設(shè)置偏移量,解決把圖片放在tabBar中間的問(wèn)題
childController.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
效果如下:(完美)
Snip20160721_17.png