0
我試圖設置TabBarController內我的TabBar上的單個項目的圖標顏色和背景顏色。Swift TabBar項目的顏色和背景顏色
我在我的TabBar上有5個圖標,其中4個爲我設置了顏色,它只是我正在努力的最後一個圖標。我附上了一張圖片下面的鏈接,以顯示我想要實現的目標。
我的相機饋送中的特定圖標是(圖像中間的那個),這個圖標我想是白色的,背景是紅色的。 到目前爲止我的代碼是這樣的 - 在我的TabBarController:
var imageNames = ["FeedIcon", "ExploreIcon", "CameraIcon", "ActivityIcon", "MyProfileIcon"]
let tabItems = tabBar.items as! [UITabBarItem]
for (index, value) in enumerate(tabItems)
{
var imageName = imageNames[index]
value.image = UIImage(named: imageName)
value.imageInsets = UIEdgeInsetsMake(5.0, 0, -5.0, 0)
}
//for below i've used a extension for imageWithColor to set the color of my icons
for tabItems in self.tabBar.items as! [UITabBarItem] {
if let image = tabItems.image {
tabItems.image = image.imageWithColor(UIColor(red: 57.0/255.0, green: 57.0/255.0, blue: 57.0/255.0, alpha: 1.0)).imageWithRenderingMode(.AlwaysOriginal)
}
}
我的分機:
extension UIImage {
func imageWithColor(tintColor: UIColor) -> UIImage {
UIGraphicsBeginImageContextWithOptions(self.size, false, self.scale)
let context = UIGraphicsGetCurrentContext() as CGContextRef
CGContextTranslateCTM(context, 0, self.size.height)
CGContextScaleCTM(context, 1.0, -1.0);
CGContextSetBlendMode(context, kCGBlendModeNormal)
let rect = CGRectMake(0, 0, self.size.width, self.size.height) as CGRect
CGContextClipToMask(context, rect, self.CGImage)
tintColor.setFill()
CGContextFillRect(context, rect)
let newImage = UIGraphicsGetImageFromCurrentImageContext() as UIImage
UIGraphicsEndImageContext()
return newImage
}
}
謝謝@angeldev,我會看看這個,讓你知道它是否可以解決問題。 – ggomersall
@ggomersall我只是嘗試在我的項目之一,它適用於我。我也很快就做到了。如果您有任何問題,請讓我知道:)。 – angeldev
真棒!我會告訴你 – ggomersall