在UITablView单元的选定状态下更改图像

我有一个自定义单元格,并添加了一个标签和图像,我的表格中有4行,每行有不同的图像,每行打开一个不同的视图控制器,所以,现在我需要点击一个特定的行我希望图像改变,我尝试这样做,但它不起作用,所以请帮助我。

if(indexPath.row == 0) { if(cell.selected == true) { UIImage *cellImage = [UIImage imageNamed:@"abc.png"]; cell.icon.image = cellImage; } else { UIImage *cellImage = [UIImage imageNamed:@"abc.png"]; cell.icon.image = cellImage; } } 

关心Ranjit

在创建单元格时或在tableView:willDisplayCell:forRowAtIndexPath:尝试执行以下操作tableView:willDisplayCell:forRowAtIndexPath: method:

 cell.imageView.image = [UIImage imageNamed:@"abc.png"]; cell.imageView.highlightedImage = [UIImage imageNamed:@"abc.png"]; 

如果它是UIImageView它也适用于你的icon属性

首先在uiImageview的自定义单元格中创建一个属性并合成它。

并且在UITabeView的didSelectRowAtIndexPath委托方法中访问属性并更改图像:

 yourCell.yourImageView.image=[UIImage imageNamed:@"yourImage"] 

对于样品我给我的代码: –

 #import  @interface CustomizedCellProductDetails : UITableViewCell { UILabel *sNO; UILabel *abcWine; UILabel *redWine; UILabel *two; UILabel *hundred; UILabel *fourTwo; UILabel *twoOne; UIImageView *imgView; UILabel *itemNo; UILabel *itemName; UILabel *itemDesc; UILabel *department; UILabel *qtyAvailable; UIButton *check; } @property (nonatomic , retain) UILabel *sNO; @property (nonatomic , retain) UILabel *abcWine; @property (nonatomic , retain) UILabel *redWine; @property (nonatomic , retain) UILabel *two; @property (nonatomic , retain) UILabel *hundred; @property (nonatomic , retain) UILabel *fourTwo; @property (nonatomic , retain) UILabel *twoOne; @property (nonatomic , retain) UIImageView *imgView; @property (nonatomic , retain) UILabel *itemNo; @property (nonatomic , retain) UILabel *itemName; @property (nonatomic , retain) UILabel *itemDesc; @property (nonatomic , retain) UILabel *department; @property (nonatomic , retain) UILabel *qtyAvailable; @property (nonatomic , retain) UIButton *check; -(void) clicked; @end 

.m文件合成它: –

 #import "CustomizedCellProductDetails.h" @implementation CustomizedCellProductDetails @synthesize sNO,abcWine,redWine,two,hundred,fourTwo,twoOne,imgView,itemNo,itemName,itemDesc,department,qtyAvailable,check; 

在tableview委托中: –

 #pragma mark - #pragma mark Table view delegate - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { // Navigation logic may go here. Create and push another view controller. /* <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; // ... // Pass the selected object to the new view controller. [self.navigationController pushViewController:detailViewController animated:YES]; [detailViewController release]; */ CustomizedCellProductDetails * cell = (CustomizedCellProductDetails )[tableView cellForRowAtIndexPath:indexPath]; [cell.imgView setImage:[UIImage imageNamed:@"wine.png"]]; } 

创建单元格时尝试执行以下操作…

在实施块…

 @implementation ABC { NSMutableArray *imageArray; NSMutableArray *imageSelectedArray; } 

这样做在下面的方法中

 (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { [cell.imageView setImage:[UIImage imageNamed:[imageArray objectAtIndex:indexPath.row]]]; [cell.imageView setHighlightedImage:[UIImage imageNamed:[imageSelectedArray objectAtIndex:indexPath.row]]]; }