我有标签栏,我想将图标颜色从默认灰色更改为白色, 我在AppDelegate中添加了这一行
UITabBar.appearance().barTintColor = UIColor(red:0.51, green:0.39, blue:0.37, alpha:1.0)
这是更改selected
项,我如何使用未选择的方式执行此操作?
答案 0 :(得分:2)
在以下使用Swift:
self.tabBar.unselectedItemTintColor = UIColor.white
答案 1 :(得分:1)
假设您已经将图标设置为您想要的颜色(在Photoshop或草图或其他内容中),您可以通过属性检查器完成此操作。
转到故事板,找到您的视图控制器(应该已经嵌入到标签栏控制器中),然后选择视图控制器底部的标签栏。
在属性检查器中,将“条形图”下的“图像”设置为未选中的标签栏项目图像(应该在您的资产中),并将标签栏项目下的“选定图像”设置为您选择的版本。
接下来,转到资产目录,选择图像,然后在属性检查器的“图像集”下,将“渲染为”设置为“原始图像”。为所有图标执行此操作。
现在应该可以了
答案 2 :(得分:0)
根据以下代码更改标签栏控制器的更改标签项目 选中和取消选择的颜色。
class TabbarController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
UITabBar.appearance().tintColor = UIColor.purpleColor()
// set red as selected background color
let numberOfItems = CGFloat(tabBar.items!.count)
let tabBarItemSize = CGSize(width: tabBar.frame.width / numberOfItems, height: tabBar.frame.height)
tabBar.selectionIndicatorImage = UIImage.imageWithColor(UIColor.lightTextColor().colorWithAlphaComponent(0.5), size: tabBarItemSize).resizableImageWithCapInsets(UIEdgeInsetsZero)
// remove default border
tabBar.frame.size.width = self.view.frame.width + 4
tabBar.frame.origin.x = -2
}
override func viewWillAppear(animated: Bool) {
// For Images
let firstViewController:UIViewController = NotificationVC()
// The following statement is what you need
let customTabBarItem:UITabBarItem = UITabBarItem(title: nil, image: UIImage(named: "notification@2x")?.imageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal), selectedImage: UIImage(named: "notification_sel@2x"))
firstViewController.tabBarItem = customTabBarItem
for item in self.tabBar.items! {
let unselectedItem = [NSForegroundColorAttributeName: UIColor.whiteColor()]
let selectedItem = [NSForegroundColorAttributeName: UIColor.purpleColor()]
item.setTitleTextAttributes(unselectedItem, forState: .Normal)
item.setTitleTextAttributes(selectedItem, forState: .Selected)
}
}
}
extension UIImage {
class func imageWithColor(color: UIColor, size: CGSize) -> UIImage {
let rect: CGRect = CGRectMake(0, 0, size.width, size.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
color.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return image
}
}