Swift:UIButton.currentImage 无法比较图像名称
Swift: UIButton.currentImage is not working comparing image name
我正在尝试像这样检查 UIButton 中的图像名称:
@IBAction func buttonTapped(_ sender: Any) {
if xcodeButton.currentImage == UIImage(named: "xcode") {
print("xcode image")
}
}
但是我在 if
语句中有一个断点,这是输出:
po xcodeButton.currentImage
▿ Optional<UIImage>
- some : <UIImage:0x6000011a93b0 named(main: xcode) {500, 500}>
但如果我比较它
po xcodeButton.currentImage == UIImage(named: "xcode")
false
你们中有人知道为什么比较返回 false 吗?或者如何比较 UIButton 中图像的名称?
非常感谢你的帮助。
您应该使用 isEqual(_:)
从 Docs 滚动到 比较图像 部分
let image1 = UIImage(named: "MyImage")
let image2 = UIImage(named: "MyImage")
if image1 != nil && image1!.isEqual(image2) {
// Correct. This technique compares the image data correctly.
}
if image1 == image2 {
// Incorrect! Direct object comparisons may not work.
}
None 这些解决方案对我有用。所以我用pngData来对比图片:
let image1Data = UIImage(named: "MyImage")?.pngData()
let image2Data = UIImage(named: "MyImage")?.pngData()
if image1Data == image2Data {
// It compares data correctly
}
我正在尝试像这样检查 UIButton 中的图像名称:
@IBAction func buttonTapped(_ sender: Any) {
if xcodeButton.currentImage == UIImage(named: "xcode") {
print("xcode image")
}
}
但是我在 if
语句中有一个断点,这是输出:
po xcodeButton.currentImage
▿ Optional<UIImage>
- some : <UIImage:0x6000011a93b0 named(main: xcode) {500, 500}>
但如果我比较它
po xcodeButton.currentImage == UIImage(named: "xcode")
false
你们中有人知道为什么比较返回 false 吗?或者如何比较 UIButton 中图像的名称?
非常感谢你的帮助。
您应该使用 isEqual(_:)
从 Docs 滚动到 比较图像 部分
let image1 = UIImage(named: "MyImage")
let image2 = UIImage(named: "MyImage")
if image1 != nil && image1!.isEqual(image2) {
// Correct. This technique compares the image data correctly.
}
if image1 == image2 {
// Incorrect! Direct object comparisons may not work.
}
None 这些解决方案对我有用。所以我用pngData来对比图片:
let image1Data = UIImage(named: "MyImage")?.pngData()
let image2Data = UIImage(named: "MyImage")?.pngData()
if image1Data == image2Data {
// It compares data correctly
}