可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I want to change my tab bar items to be pink when selected instead of the default blue.
How can i accomplish this using the storyboard editor in Xcode 6?
Here are my current setting which are not working, the blue background works but the pink doesnt work:
回答1:
Add Runtime Color attribute named "tintColor" from StoryBoard. This is working.
回答2:
This elegant solution works great on SWIFT 3.0 and SWIFT 4.0:
On the Storyboard:
- Select your Tab Bar
- Set a Runtime Attibute called tintColor for the desired color of the Selected Icon on the tab bar
- Set a Runtime Attibute called unselectedItemTintColor for the desired color of the Unselected Icon on the tab bar

Edit: Tested with Xcode 8, for iOS 10 and above
回答3:
In Swift, using xcode 7 (and later), you can add the following to your AppDelegate.swift file:
UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0)
This is the what the complete method looks like:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { // I added this line UITabBar.appearance().tintColor = UIColor(red: 255/255.0, green: 255/255.0, blue: 255/255.0, alpha: 1.0) return true }
In the example above my item will be white. The "/255.0" is needed because it expects a value from 0 to 1. For white, I could have just used 1. But for other color you'll probably be using RGB values.
回答4:
On Xcode8
I have changed the ImageTint
from the storyboard and it works well.

The result:

回答5:
put this code in the viewDidLoad of the view controller that you want to change the color of
[[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];
回答6:
You can also set selected image bar tint color by key path:

Hope this will help you!! Thanks
回答7:
XCode 8.2, iOS 10, Swift 3: now there's an unselectedItemTintColor
attribute for tabBar
:
self.tabBar.unselectedItemTintColor = UIColor(red: 0/255.0, green: 200/255.0, blue: 0/255.0, alpha: 1.0)
回答8:
Swift 3 | Xcode 10
If you want to make all tab bar items the same color (selected & unselected)...
Step 1
Make sure your image assets are setup to Render As = Template Image. This allows them to inherit color.

Step 2
Use the storyboard editor to change your tab bar settings as follows:
- Set Tab Bar: Image Tint to the color you want the selected icon to inherit.
- Set Tab Bar: Bar Tint to the color you want the tab bar to be.
- Set View: Tint to the color you want to see in the storyboard editor, this doesn't affect the icon color when your app is run.

Step 3
Steps 1 & 2 will change the color for the selected icon. If you still want to change the color of the unselected items, you need to do it in code. I haven't found a way to do it via the storyboard editor.
Create a custom tab bar controller class...
// TabBarController.swift class TabBarController: UITabBarController { override func viewDidLoad() { super.viewDidLoad() // make unselected icons white self.tabBar.unselectedItemTintColor = UIColor.white } }
... and assign the custom class to your tab bar scene controller.

If you figure out how to change the unselected icon color via the storyboard editor please let me know. Thanks!
回答9:
Somehow we are not able to change the Tab Bar selected item Tint color using storyboard alone, hence I added below code in my ViewDidLoad, hope this helps.
[[UITabBar appearance] setTintColor:[UIColor whiteColor]];
回答10:
You can change colors UITabBarItem by storyboard but if you want to change colors by code it's very easy:
// Use this for change color of selected bar
[[UITabBar appearance] setTintColor:[UIColor blueColor]];
// This for change unselected bar (iOS 10)
[[UITabBar appearance] setUnselectedItemTintColor:[UIColor yellowColor]];
// And this line for change color of all tabbar
[[UITabBar appearance] setBarTintColor:[UIColor whiteColor]];
回答11:
This is the solution in Swift 3 that works in iOS 10:
Firstly, you create your own tab bar controller subclass and add it to your tab controller in your storyboard. In the viewDidLoad()
method you can then customize the tab bar. It should be stated here that the tintColor
attribute of the tabBar
represents the color of the selected item not the color of the unselected ones! In order to change the color of the unselected items, I recommend looping through each item and use the original colors of your images, so they are not rendered as grey automatically.
class CustomTabBarVC: UITabBarController { override func viewDidLoad() { super.viewDidLoad() self.tabBar.tintColor = AppColor.normalRed self.tabBar.barTintColor = .white self.tabBar.isTranslucent = true if let items = self.tabBar.items { for item in items { if let image = item.image { item.image = image.withRenderingMode( .alwaysOriginal ) } } } } }
The only downside with this approach is that your item images must already have the desired color you aim for.
回答12:
You can subclass the UITabBarController
, and replace the one with it in the storyboard. In your viewDidLoad
implementation of subclass call this:
[self.tabBar setTintColor:[UIColor greenColor]];
回答13:
Add this code in your app delegate -did_finish_launching_with_options function
UITabBar.appearance().tintColor = UIColor( red: CGFloat(255/255.0), green: CGFloat(99/255.0), blue: CGFloat(95/255.0), alpha: CGFloat(1.0) )
put the RGB of the required color