如何在ios中更改特定单元格图像相对于索引路径?
Posted
技术标签:
【中文标题】如何在ios中更改特定单元格图像相对于索引路径?【英文标题】:How to change the specific cell image respect to indexpath in ios? 【发布时间】:2016-03-18 10:56:58 【问题描述】:当我根据需要更改 tableview 单元格中的图像的值更新表时,我正在使用 tableview 和 Sqlite,它也可以正常工作,但是当我滚动时,我的图像正在更改下面是我的代码
Sqlite 表更新
[DBObject upDateTable:@"Green" :messageID];
我如何从我的数组中获取值
NSString *messageStatus = [[messageArray1 objectAtIndex:index] ColorStatus];
现在我在 cellForRowAtIndexPath 中检查 colorStatus,如下所示
if ([messageStatus isEqualToString:@"Green"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-Green.png"];
[[ASNGlobalClass shareManager] setIsDelivered:YES];
else if ([messageStatus isEqualToString:@"Red"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-Red.png"];
else if ([messageStatus isEqualToString:@"Yellow"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-yellow.png"];
我的图像分配完美,但是当我滚动时它正在改变我不知道我错过了哪里请帮助我
【问题讨论】:
把 else 条件放在最后,将图片设置为 nil 你把NSString *messageStatus = [[messageArray1 objectAtIndex:index] ColorStatus];
放在哪里?
出于检查目的,我使用上面的行如 if ([messageStatus isEqualToString:@"Green"])
能否在 cellForRowAtindexPath 中添加单元格代码?
@RonakChaniyara 对不起,我没接你?
【参考方案1】:
cell.playButtonImageView.image=nil; // write this line before set image
if ([messageStatus isEqualToString:@"Green"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-Green.png"];
[[ASNGlobalClass shareManager] setIsDelivered:YES];
else if ([messageStatus isEqualToString:@"Red"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-Red.png"];
else if ([messageStatus isEqualToString:@"Yellow"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-yellow.png"];
【讨论】:
【参考方案2】:if ([messageStatus isEqualToString:@"Green"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-Green.png"];
[[ASNGlobalClass shareManager] setIsDelivered:YES];
else if ([messageStatus isEqualToString:@"Red"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-Red.png"];
else if ([messageStatus isEqualToString:@"Yellow"])
cell.playButtonImageView.image= [UIImage imageNamed:@"message-yellow.png"];
else
cell.playButtonImageView.image= [UIImage imageNamed:@"some-default-image-placeholder.png"]; // some-default-image-placeholder.png is an placeholder image name
【讨论】:
不,我必须处理三个图像。我也在其他地方尝试过使用 nil 您需要调试 messageStatus 值,并确保它至少具有绿色、红色、黄色中的一个值,而不是永远不会执行 else 循环。 感谢重播。是的,你是对的,但每次如果我改变一些东西,它就会变成绿色,而不是我会改变图像对索引路径的尊重 如果在滚动时您的单元格图像发生变化,那么它肯定无法进入任何 if 或 else if 块,因此它正在显示旧的单元格图像(即在重用之前)。因此,请尝试记录每个单元格的 messageStatus 值,并确保它至少具有绿色、红色、黄色中的一个值。 感谢重播,我会尝试以上是关于如何在ios中更改特定单元格图像相对于索引路径?的主要内容,如果未能解决你的问题,请参考以下文章