ios – 如何检查按钮是否有此图像

我想检查myButton是否有一个命名图像.

我试试这个,但它不起作用

if (myButton.currentimage?.isEqual(UIImage(named: "ButtonAppuyer.png")) != nil){
        print("YES")
    } else {
        print("NO")
    }

这也行不通

if myButton.currentimage?.isEqual(UIImage(named: "ButtonAppuyer.png")){
        print("YES")
    } else {
        print("NO")
    }

解决方法

这是我在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")
}

这可以清理很多.

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)
    }
}

然后使用它

if myButton.hasImage(named: "ButtonAppuyer.png",for: .normal) {
    print("YES")
} else {
    print("NO")
}

相关文章

UITabBarController 是 iOS 中用于管理和显示选项卡界面的一...
UITableView的重用机制避免了频繁创建和销毁单元格的开销,使...
Objective-C中,类的实例变量(instance variables)和属性(...
从内存管理的角度来看,block可以作为方法的传入参数是因为b...
WKWebView 是 iOS 开发中用于显示网页内容的组件,它是在 iO...
OC中常用的多线程编程技术: 1. NSThread NSThread是Objecti...