【发布时间】:2019-03-12 07:24:58
【问题描述】:
大家好,我想创建一个帮助类,它将我所有的图片设置到我的按钮上。但总是图片为零:(我的错误在哪里?
1 级(动作发生的地方)
class RandomClass {
let imageSetter = ImageSetter()
let mvc = MainViewController()
func actionWhenConnected(){
imageSetter.setButtonImages(nameOfButton: mvc.ConnectingButtonLabel, nameOfImage: "Connection/ConnectionOn", nameOfColor: .green, forStatus: .normal)
}
}
这意味着当函数被调用时,我的 MainViewController 中的图像应该切换到我的绿色 Connection On Picture
2 类(助手类)
class ImageSetter{
func setButtonImages(nameOfButton:UIButton, nameOfImage:String, nameOfColor:UIColor, forStatus:UIControl.State){
nameOfButton.setImage(UIImage(named: nameOfImage), for: forStatus)
let origImage = UIImage(named: nameOfImage)
let tintedImage = origImage?.withRenderingMode(.alwaysTemplate)
nameOfButton.setImage(tintedImage, for: .normal)
nameOfButton.tintColor = nameOfColor
}
}
在我的 MainViewController 中它可以工作:( 好像RandomClass没找到assets.xcassets是因为找不到图片的名字?
解决了!
func actionWhenConnected(){
let mvc = UIApplication.shared.keyWindow?.rootViewController as! MainViewController
imageSetter.setButtonImages(nameOfButton:mvc.ConnectingButtonLabel, nameOfImage: "Connection/ConnectionOff", nameOfColor: .red, forStatus: .normal)
}
非常感谢@matt
【问题讨论】:
-
如果你把
ConnectionOn而不是Connection/ConnectionOn作为图像名称呢? -
是的,现在添加了资产的屏幕截图。编辑:截图 ConnectionOff 但同样的问题