更改未选择的标签栏项目图像的颜色而不使其成为原始图像
Posted
技术标签:
【中文标题】更改未选择的标签栏项目图像的颜色而不使其成为原始图像【英文标题】:Change color of unselected tabbar item image without making it original 【发布时间】:2016-06-04 06:31:14 【问题描述】:我关注了这个Question 它适用于 UITabBar 项目文本,但如果我使用原始图像,则无法更改所选 UITabBar 项目图像的颜色
我正在更改图像色调颜色并通过storyBoard而不是以编程方式使其成为原始颜色,即“selectedImageTintColor”(这是在选择模板图像时更改标签栏项目图像颜色而不是原始图像)
【问题讨论】:
【参考方案1】:更新到 Swift 3
在 UITabbarcontroller 中使用此代码
//User this line for selected Tabbar Image tint colour
UITabBar.appearance().tintColor = UIColor.purple
// You can set tab colours as per requirement here
// 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(color: UIColor.red, size: tabBarItemSize).resizableImage(withCapInsets: UIEdgeInsets.zero)
// remove default border
tabBar.frame.size.width = self.view.frame.width + 4
tabBar.frame.origin.x = -2
并将此扩展用于图像颜色
extension UIImage
class func imageWithColor(color: UIColor, size: CGSize) -> UIImage
let rect: CGRect = CGRect(x: 0,y: 0, width: size.width,height: size.height)
UIGraphicsBeginImageContextWithOptions(size, false, 0)
color.setFill()
UIRectFill(rect)
let image: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
【讨论】:
对不起,你错过了理解这个问题。我需要未选择的标签栏项目图像 你在 UITabbarcontroller 中使用了这行代码:-UITabBar.appearance().tintColor = UIColor.purpleColor()以上是关于更改未选择的标签栏项目图像的颜色而不使其成为原始图像的主要内容,如果未能解决你的问题,请参考以下文章