我在每个tableviewcell中都有一个UIButton,我有一个图像。基本上我根据另一个参数将图像设置为不同的。你可以忽略totalTime / activityTimeInt的东西,但如果它有用,它们只是整数(比如总时间= 60,活动时间= 50)。以下是cellforrowatindexpath:
if(totalTime <= activityTimeInt){
[cell.vicinitimeGraphicButton setImage:[UIImage imageNamed:@"travelDistanceGraphicRed.png"] forState:UIControlStateNormal];
[cell.vicinitimeGraphicButton setFrame:CGRectMake(5,13,70,70)];
}
if(totalTime + 10 >= activityTimeInt){
[cell.vicinitimeGraphicButton setImage:[UIImage imageNamed:@"travelDistanceGraphicYellow.png"] forState:UIControlStateNormal];
[cell.vicinitimeGraphicButton setFrame:CGRectMake(5,13,70,70)];
}
if(totalTime >= activityTimeInt){
[cell.vicinitimeGraphicButton setImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal];
[cell.vicinitimeGraphicButton setFrame:CGRectMake(5,13,70,70)];
}
}
else if (!totalTime){
[cell.vicinitimeGraphicButton setImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal];
[cell.vicinitimeGraphicButton setFrame:CGRectMake(5,13,70,70)];
}
return cell;
由于某种原因if语句贯穿
else if (!totalTime){
[cell.vicinitimeGraphicButton setImage:[UIImage imageNamed:@"travelDistanceGraphicGreen.png"] forState:UIControlStateNormal];
[cell.vicinitimeGraphicButton setFrame:CGRectMake(5,13,70,70)];
}
其中totalTime不存在,图像如下:
当它运行其他3个if语句(带有totalTime)时,它们看起来像:
如果您需要更多信息,请询问。提前致谢。
答案 0 :(得分:2)
您需要使用此代码
[cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"travelDistanceGraphicRed.png"]
forState:UIControlStateNormal];
因为
setImage:forState
:将图片设置为按钮的实际内容。例如,即使您设置了按钮 title 也看不到,因为您已将图像设置为内容,否则您可以看到左侧的图像和右侧的文本在你的情况下
setBackgroundImage:forState
:将图片设置为背景。在这种情况下,您可以设置标题,它会显示在图像的顶部。
请注意,您没有将默认背景图像设置为按钮
答案 1 :(得分:0)
我发现问题是我在customtablecell.xib文件中设置了默认图像,而我不应该这样做。我失败了。然而,它应该像ayush上面说的那样是背景图像。
默认图片不应设置为任何内容。