This question already has an answer here:
-
UITableViewCell.ImageView.image Compare UIImage
3 answers
I am using the method given below
IBOutlet UIImageView *imgViewCheck;
- (IBAction)clkCheckUncheck:(id)sender {
if (imgViewCheck.image == [UIImage imageNamed:@"uncheck.png"]) {
imgViewCheck.image = [UIImage imageNamed:@"check.png"];
} else {
imgViewCheck.image = [UIImage imageNamed:@"uncheck.png"];
}
}
It is working in up to iOS7 but not working in iOS8
Please compare NSData object instead of comparing UIImage Object.
-(BOOL)firstimage:(UIImage *)image1 isEqualTo:(UIImage *)image2 {
NSData *data1 = UIImagePNGRepresentation(image1);
NSData *data2 = UIImagePNGRepresentation(image2);
return [data1 isEqualToData:data2];
}
I'd not rely on comparing image property with address returned by UIImage method (it could be newly allocated block I suppose).
If you really need to compare if data(image) is same you could use something like:
UIImage* checkImage = [UIImage imageNamed:@"check.png"];
NSData *checkImageData = UIImagePNGRepresentation(checkImage);
NSData *propertyImageData = UIImagePNGRepresentation(imgViewCheck.image);
if ([checkImageData isEqualToData:propertyImageData]) {
//do sth
}
where possible I'd prefer to keep state/imageId in a variable for comparison purposes