1,tabBarItem圖片的推薦尺寸和最大支持尺寸
下面是標簽欄(UITabBar)中tab按鈕圖標分別在1x、2x、3x下不會壓縮變形的尺寸:
@1x : 推薦 25 x 25 (最大: 48 x 32)下面是在2x下,左邊使用50 x 50的圖片,右邊使用64 x 64的圖片,大家可以比較下:
import UIKit
class MainTabViewController:UITabBarController
{
override func viewDidLoad()
{
super.viewDidLoad()
//一共包含了兩個視圖
let qqView = View1ViewController()
qqView.title = "QQ"
let androidView = View1ViewController()
androidView.title = "skype"
//分別聲明兩個視圖控制器
let qq = UINavigationController(rootViewController:qqView)
qq.tabBarItem.image = UIImage(named:"qq")
let android = UINavigationController(rootViewController:androidView)
android.tabBarItem.image = UIImage(named:"skype")
self.viewControllers = [qq,android]
//默認選中的是qq視圖
self.selectedIndex = 0
}
}
2,修改圖片和文字的顏色
默認未選中標簽的圖片和文字是灰色的,選中的是藍色的,下面修改成橙色://圖片文字一起變色
self.tabBar.tintColor = UIColor.orangeColor()
(2)只改變文字顏色
//改變文字顏色
UITabBarItem.appearance().setTitleTextAttributes(
[NSForegroundColorAttributeName: UIColor.grayColor()], forState:.Normal)
UITabBarItem.appearance().setTitleTextAttributes(
[NSForegroundColorAttributeName: UIColor.orangeColor()], forState:.Selected)
(3)只改變圖片顏色
self.tabBar.tintColor = UIColor.orangeColor()
//文字顏色還原
UITabBarItem.appearance().setTitleTextAttributes(
[NSForegroundColorAttributeName: self.view.tintColor], forState:.Selected)
3,選中時、不選中時使用不同圖片
默認標簽選中、不選中都使用的是同一個圖片,只是顏色不同。我們也可使用兩張不同圖片表示兩種狀態。
qq.tabBarItem = UITabBarItem(title: "QQ", image: UIImage(named: "qq"),
selectedImage: UIImage(named: "qq_active"))
android.tabBarItem = UITabBarItem(title: "Android", image: UIImage(named: "android"),
selectedImage: UIImage(named: "android_active"))
4,使用圖片的原始顏色
默認不管原圖是什麼顏色,渲染器都會將渲染成單一顏色,雖說符合現在扁平化的趨勢,但有時我們還是想要使用圖片原來的樣子。
如下樣例,標簽選中時使用不著色的原始圖片(未選中仍然渲染成灰色,當然也可以使用原始圖片)
qq.tabBarItem = UITabBarItem(title: "QQ", image: UIImage(named: "qq_color"),
selectedImage: UIImage(named: "qq_color")?.imageWithRenderingMode(.AlwaysOriginal))
android.tabBarItem = UITabBarItem(title: "Android", image: UIImage(named: "android_color"),
selectedImage: UIImage(named: "android_color")?.imageWithRenderingMode(.AlwaysOriginal))