UITableViewCell.ImageView.image比较UIImage

时间:2014-10-18 11:27:34

标签: ios objective-c uitableview uiimage

我将cell.imageView.image与UIImage进行比较,如下面的代码。

请参阅以下代码

    UIImage *imgOne = [UIImage imageNamed:@"One"];

    if([customCell.imageView.image isEqual: imgOne]){
          NSLog(@"Right Image");
    }

在调试时,我写为po [customCell.imageView.image isEqual imgOne],但它总是返回'nil'。

有谁能告诉我如何比较这种或正确的比较方式?

3 个答案:

答案 0 :(得分:5)

通常UIImageView无法存储图片的文件名,但只存储UIImage,因此无法获取您在UIImageView中添加的图片文件名。

如果你只想比较图像文件名,那就无法比较它了。

但是如果你想比较两个UIImage对象那么

UIImage *secondImage = [UIImage imageNamed:@"image.png"];

NSData *imgData1 = UIImagePNGRepresentation(self.imageView.image);
NSData *imgData2 = UIImagePNGRepresentation(secondImage);

BOOL isCompare =  [imgData1 isEqualToData:imgData2];
if(isCompare)
{
  NSLog(@"Image View contains image.png");
}
else
{
  NSLog(@"Image View doesn't contains image.png");
}

答案 1 :(得分:2)

如果将“image one”维护为成员var。(1)
并将单元格的图像设置为此值。(2)
然后你可以用这两个指针进行比较。(3)
看到这段代码:

//1
self.imgOne  = [UIImage imageNamed:@"One"];  
//2  
customCell.imageView.image=self.imgOne   
//3  
if(customCell.imageView.image == self.imgOne)
   {}

答案 2 :(得分:0)

而不是 Imageview 我尝试使用按钮

而不是我检查如下

    if([cell.button.currentImage isEqual: [UIImage imagenamed:"Your Imagenem"]]){
NSLog(@"Right Image");

}

工作正常..

谢谢。