我正在开发一个应用程序。我正在对两个图像进行比较操作,如下所示
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.
}
如果我运行这个,检查图像更改为取消选中。但是取消选中图像并不会检查图像。每次执行其他块时。请帮助我如何比较这两个图像。此代码在设备中完美运行。但问题只在于模拟器。
答案 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"];
}