我想检查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") }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。