图像比较在ios模拟器中不起作用

时间:2013-06-27 10:04:41

标签: iphone ios uiimageview

我正在开发一个应用程序。我正在对两个图像进行比较操作,如下所示

 UIImage *actual_image=usrcheck_image.image;
NSData *present_image = UIImagePNGRepresentation(actual_image);
NSData *compare_image = UIImagePNGRepresentation([UIImage imageNamed:@"unchk-1.png"]);

if([present_image isEqualToData:compare_image])
{
   set the checked image
}
else
{
   set the uncheck image.
 }

如果我运行这个,检查图像更改为取消选中。但是取消选中图像并不会检查图像。每次执行其他块时。请帮助我如何比较这两个图像。此代码在设备中完美运行。但问题只在于模拟器。

4 个答案:

答案 0 :(得分:1)

试用此代码 -

拍摄2张已选中和未选中的图像,并将图像指定给UIButton。

 UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0, 0, 160, 30);
[button setImage:[UIImage imageNamed:@"checkedImage.png"] forState:UIControlStateNormal];
[button setImage:[UIImage imageNamed:@"uncheckedImage.png"] forState:UIControlStateSelected];
button.tag = 1;
[button addTarget:self action:@selector(buttonAction:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];

并且在buttonAction函数中 -

selectedBtn.selected = NO;
button.selected = YES;
selectedBtn = button;

在.h文件中提到

UIButton *selectedBtn; 

希望它可以帮到你。

答案 1 :(得分:0)

您可以使用highlighted的{​​{1}}属性。将选中的图像设置为UIImageView属性,并在click事件集上设置:

highlightedImage

它会自动将您的图像显示为切换

答案 2 :(得分:0)

下面的链接可以帮到你

Objective-C: Comparing an image against another image that has been previously saved

让我知道这是否有效

答案 3 :(得分:0)

首先,不需要比较图像数据,也不需要比较图像,

但是如果你想比较图像意味着,只需按照以下方式执行

if(usrcheck_image.image==[UIImage imageNamed:@"unchk-1.png"]) {
    usrcheck_image.image=[UIImage imageNamed:@"chk-1.png"];
} else {
    usrcheck_image.image=[UIImage imageNamed:@"unchk-1.png"];
}