Ios UI按钮图像在tableviewcell中被扭曲
我在每个有图像的tableviewcell中都有一个UIButton。基本上,我根据另一个参数将图像设置为不同的值。您可以忽略totalTime/activityTimeInt内容,但如果有帮助的话,它们只是int(比如totalTime=60,activitytime=50)。以下是CellForRowAtIndex路径:Ios UI按钮图像在tableviewcell中被扭曲,ios,objective-c,image,uitableview,uibutton,Ios,Objective C,Image,Uitableview,Uibutton,我在每个有图像的tableviewcell中都有一个UIButton。基本上,我根据另一个参数将图像设置为不同的值。您可以忽略totalTime/activityTimeInt内容,但如果有帮助的话,它们只是int(比如totalTime=60,activitytime=50)。以下是CellForRowAtIndex路径: if(totalTime <= activityTimeInt){ [cell.vicinitimeGraphicButton setImag
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;
如果totalTime不存在,则图像如下所示:
当它通过其他3条if语句(使用totalTime)时,它们看起来像:
如果你需要更多的信息,尽管问。提前谢谢 您需要使用此代码
[cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"travelDistanceGraphicRed.png"]
forState:UIControlStateNormal];
自
请注意,您没有为按钮设置默认背景图像我发现问题在于我在customtablecell.xib文件中设置了默认图像,而我本不应该这样做。我失败了。然而,这应该是像阿尤什所说的那样的挫折
默认图像不应设置为任何值。在这些if/else块中是否有其他内容与显示50分钟等的标签相关,而您尚未发布?否,if/else块中除了上面发布的内容外,没有其他内容。至于设置标签,代码是
cell.travelTimeLabel.text=[totalEverythingTimeArray objectAtIndex:indexPath.row]代码>但我不认为这会影响uibuttonsIs,当totaltime为nil时,单元格中是否还有其他字段会获得值?基本上,代码中必须有其他地方再次使用这些条件,或者再次使用totaltime来设置某些字段值。不,在整个cellforrowatindexpath方法中,只有一个使用totaltime的if/else块。要查看整个方法吗?好的。你可以发布这个方法。此外,如果这是一个自定义UITableViewCell,也可以发布其代码。如果使用setBackgroundImage,则在再次运行该方法后,图像不会更改。tableview会根据搜索而更改,再次搜索后,setBackgroundImage不会在前面显示图像,这就是为什么我使用setImagecorrect me如果我理解错误有时setBackgroundImage有效有时无效这就是你的意思。抱歉,不,我的意思是当我使用setBackgroundImage时,第一次加载tableview时工作正常,但是当我尝试使用setbackgroundimage使用新uibutton图像更新tableview时,新更新的图像会隐藏在旧图像后面。因此,仅显示在我首次加载tableview时加载的uibutton图像。我可能有错,但当我使用setImage时,图像似乎正在更新。因此,在更新表视图时出现问题。如果我使用setImage,则加载新图像后,表视图可以更新,但图像会失真,如我在问题中所说
[cell.vicinitimeGraphicButton setBackgroundImage:[UIImage imageNamed:@"travelDistanceGraphicRed.png"]
forState:UIControlStateNormal];