Od UITabBarItem
klasy docs:
Domyślnie rzeczywiste niezaznaczone i wybrane obrazy są tworzone automatycznie na podstawie wartości alfa w obrazach źródłowych. Aby zapobiec kolorowaniu systemu, należy dostarczyć obrazy z UIImageRenderingModeAlwaysOriginal.
Kluczem nie jest to, czy używasz UIImageRenderingModeAlwaysOriginal
, ważne jest, kiedy go używać.
Aby zabezpieczyć szary kolor przed niezaznaczonymi przedmiotami, należy po prostu zapobiec kolorowaniu systemu dla niewybranego obrazu. Oto jak to zrobić:
var firstViewController:UIViewController = UIViewController()
// The following statement is what you need
var customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "YOUR_IMAGE_NAME")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "YOUR_IMAGE_NAME"))
firstViewController.tabBarItem = customTabBarItem
Jak widać, poprosiłem iOS zastosować oryginalny kolor (biały, żółty, czerwony, cokolwiek) obrazu tylko dla państwa zaznaczone, i pozostawić obraz jako to jest dla stanu WYBRANE.
Może być konieczne dodanie koloru paska na pasku, aby zastosować inny kolor dla stanu WYBRANE (zamiast domyślnego niebieskiego koloru iOS). Jak na powyższym zrzucie ekranu, stosuje się biały kolor dla wybranego stanu:
self.tabBar.tintColor = UIColor.whiteColor()