检查 UIButton 图像

Checking UIButton Image

我正在尝试检查一些 UIButton 图像以查看它们是否是特定图像。如果是,我想将 NSString 设置为一个值,但该值始终为 null。我做错了什么?

if ([self.firstButton.currentImage isEqual:[UIImage imageNamed:@"image"]]
    && [self.secondButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]]
    && [self.thirdButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]]
    && [self.fourthButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]]
    && [self.fifthButton.currentImage isEqual:[UIImage imageNamed:@"another_image"]]) {
     self.myString = @"some string";
}

NSLog(@"My String: %@", self.myString);

你可以这样做

[[self.firstButton imageForState:UIControlStateNormal]isEqual:[UIImage imageNamed:@"image"]]

试试这个。这可能会有所帮助。

比较图像内容并非易事,比较内存句柄也不可靠。

尝试将图像转换为 NSData 并相互比较。 {

NSData * const firstButtonImageData = UIImagePNGRepresentation(self.firstButton.currentImage);
NSData * const secondButtonImageData = UIImagePNGRepresentation(self.secondButton.currentImage);
NSData * const myImageData = UIImagePNGRepresentation([UIImage imageNamed:@"image"]);
NSData * const anotherImageData = UIImagePNGRepresentation([UIImage imageNamed:@"another_image"]);

if ([firstButtonImageData isEqualToData:myImageData] &&
        [secondButtonImageData isEqualToData:anotherImageData])
{
    self.myString = @"some string";
}

NSLog(@"My String: %@", self.myString);