我正在开发一个使用表格视图的应用程序。在这个表视图中,我有一些关于表头的信息,我还通过在其上放置一些自定义视图来自定义表头。
if ([imageForCheckMark.image isEqual:[UIImage imageNamed:@"crossCheckMark.png"]]||[imageForCheckMark.image isEqual:[UIImage imageNamed:@"checkMark.png"]])
{
}
else
{
imageForBackGroundOfHeader.image=[UIImage imageNamed:@"head1.png"];
}
在上面的代码中,我已将图像与其名称相匹配,并根据我在标题视图中应用的图像给出结果。但是,如果我正在处理这段代码并将我的应用程序放在后台并且进入前台,那么这段代码每次都会给出错误值。
我做错了什么?请告诉我如何纠正它。
答案 0 :(得分:1)
你怎么能指望
imageForCheckMark.image = [UIImage imageNamed:@“crossCheckMark.png”]?
这两个是不同的对象。
这样做的最佳方法是使新类派生自UIImage,并使用flag来区分图像。
答案 1 :(得分:1)
@property(nonatomic, copy) NSString *accessibilityIdentifier NS_AVAILABLE_IOS(5_0);
accessibilityIdentifier是一个NSString,作为UIKit中的一个属性,可用于在UIImageView中存储图像的名称。不需要SubClass UIImageView来存储imageName。
UIImageView *imv;
当您将图像设置为imageView设置文件名时。
[imv setAccessibilityIdentifier:@"ImageName"] ;
imv.image=[UIImage imageNamed:[imv accessibilityIdentifier]];
当你确认你的病情时,请检查:
if ([[imv accessibilityIdentifier] isEqualToString:@"crossCheckMark.png"]||[[imv accessibilityIdentifier] isEqualToString:@"checkMark.png"])
//Do this
else
imageForBackGroundOfHeader.image=[UIImage imageNamed:@"head1.png"];
答案 2 :(得分:0)
替换此
[imageForCheckMark.image isEqual:[UIImage imageNamed:@"crossCheckMark.png"]
用这个
imageForCheckMark.image ==[UIImage imageNamed:@"crossCheckMark.png"]
所以你的病情现在看起来像这样
if ((imageForCheckMark.image ==[UIImage imageNamed:@"crossCheckMark.png"])||(imageForCheckMark.image ==[UIImage imageNamed:@"checkMark.png"]))
{
}
else
{
imageForBackGroundOfHeader.image=[UIImage imageNamed:@"head1.png"];
}