У меня есть UIBarButton в моей панели навигации, я установить изображение (silhouette.png) к нему из раскадровки, и я могу изменить оттенок этого изображения в (цвет) по желанию:Невозможно изменить UIBarButton tintColor
if let num2 = Int(s, radix: 16) { //s="00ff00"
flamingoBtn.tintColor = UIColor(netHex:num2) //this btn is an IBoutlet
}
Однако, в какой-то момент изменить исходное изображение для другого изображения (icon.png), программно, поэтому мне не нужно, чтобы изменить оттенок в этом случае, до сих пор так хорошо:
if let url = NSURL(string: "http://www.123di.com/CanonSGLens_132.png") {
if let data = NSData(contentsOfURL: url) {
var newImgThumb : UIImage=UIImage(data: data)!
var iconBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
iconBtn.setImage(newImgThumb, forState: UIControlState.Normal)
iconBtn.addTarget(self, action: "goToSettings:", forControlEvents: UIControlEvents.TouchUpInside)
var item = UIBarButtonItem(customView: iconBtn)
self.navigationItem.leftBarButtonItem = item
print("CUSTOM ICON: DOWNLOADED")
}
}
проблема приходит, когда я переключаюсь на изображение значка на исходный силуэт.png, потому что я не могу изменить оттенок любой lo nger, она всегда остается синим silhoute (цвет по умолчанию), а не зеленый, красный и т.д.:
var newImgThumb : UIImage=UIImage(named: "happyface.png")!
var replyBtn = UIButton(frame: CGRect(x: 0, y: 0, width: 35, height: 35))
replyBtn.setImage(newImgThumb, forState: UIControlState.Normal)
replyBtn.addTarget(self, action: "goToSettings:", forControlEvents: UIControlEvents.TouchUpInside)
replyBtn.tintColor = UIColor.greenColor()
var item = UIBarButtonItem(customView: replyBtn)
item.tintColor = UIColor.greenColor()//UIColor(netHex:num2)
self.navigationItem.leftBarButtonItem = item
Что я делаю не так, почему изменения оттеночные igonred потом ?? Если вам нужна дополнительная информация, дайте мне знать.
Вы пытались сохранить ссылку на кнопку и после того, как она будет установлена и представлена, изменив цвет оттенка в этот момент? – sschale