Rom*_*ond 4 image uibutton ios swift swift3
我想检查myButton是否有一个命名图像.
我试试这个,但它不起作用
if (myButton.currentImage?.isEqual(UIImage(named: "ButtonAppuyer.png")) != nil){
print("YES")
} else {
print("NO")
}
Run Code Online (Sandbox Code Playgroud)
这也行不通
if myButton.currentImage?.isEqual(UIImage(named: "ButtonAppuyer.png")){
print("YES")
} else {
print("NO")
}
Run Code Online (Sandbox Code Playgroud)
这是我在Swift 3.0中提出的.
if let myButtonImage = myButton.image(for: .normal),
let buttonAppuyerImage = UIImage(named: "ButtonAppuyer.png"),
UIImagePNGRepresentation(myButtonImage) == UIImagePNGRepresentation(buttonAppuyerImage)
{
print("YES")
} else {
print("NO")
}
Run Code Online (Sandbox Code Playgroud)
这可以清理很多.
extension UIButton {
func hasImage(named imageName: String, for state: UIControlState) -> Bool {
guard let buttonImage = image(for: state), let namedImage = UIImage(named: imageName) else {
return false
}
return UIImagePNGRepresentation(buttonImage) == UIImagePNGRepresentation(namedImage)
}
}
Run Code Online (Sandbox Code Playgroud)
然后使用它
if myButton.hasImage(named: "ButtonAppuyer.png", for: .normal) {
print("YES")
} else {
print("NO")
}
Run Code Online (Sandbox Code Playgroud)