0

我想在选择时在单元格上显示图像。我已经尝试了无数种方法来做到这一点,但都没有成功。我尝试将其添加到didSelectRowAtIndexPath

UITableViewCell *cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:nil];
cell.imageView.image = [UIImage imageNamed:@"deselected_image.png"];
cell.imageView.highlightedImage = [UIImage imageNamed:@"selected_image.png"];

但图像不会在推送时改变。

谢谢

4

3 回答 3

0

您拥有的代码正在创建一个新的表格视图单元格 - 您需要检索当前选定的单元格。请尝试以下操作:

(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    cell.imageView.image = [UIImage imageNamed:@"deselected_image.png"];
    cell.imageView.highlightedImage = [UIImage imageNamed:@"selected_image.png"];

}

于 2013-01-23T21:52:31.167 回答
0

我已根据要求将 UIColor 应用于每个单元格。您可以替换 UIColor 代码并应用图像。这是我的代码

- (void)tableView: (UITableView*)tableView willDisplayCell: (UITableViewCell*)cell forRowAtIndexPath: (NSIndexPath*)indexPath
{
    if(tableView==tblLanguage)
    {
           cell.backgroundView = [[UIView alloc] init];

          ((UIView *)cell.backgroundView).backgroundColor = !(indexPath.row % 2)?[UIColor colorWithRed:(float)231/255 green:(float)231/255 blue:(float)231/255 alpha:1.0]:[UIColor colorWithRed:(float)218/255 green:(float)218/255 blue:(float)218/255 alpha:1.0];
          ((UIView *)cell.backgroundView).alpha=1.0;
    //ilangSelectedIndex is set in the didselect row of the tableview delegate function
     if(ilangSelectedIndex==[indexPath row])
      {
            ((UIView *)cell.backgroundView).backgroundColor=[UIColor colorWithRed:(float)171/255 green:(float)177/255 blue:(float)213/255 alpha:1.0];       
       }
            cell.textLabel.backgroundColor = [UIColor clearColor];
            cell.detailTextLabel.backgroundColor = [UIColor clearColor];
     }


}   

在表格的选择功能中,您将 ilangSelectedIndex 设置为表格的 Indexpath.row并重新加载表格以查看效果。

于 2013-01-24T05:40:38.303 回答
0

在 didSelectRowAtIndexPath 中尝试此代码:

 UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.selectedBackgroundView=[[UIImageView alloc]init];
cell.backgroundView =[[UIImageView alloc] init];
((UIImageView *)cell.selectedBackgroundView).image=[UIImage imageNamed:@"selected.png"];
于 2013-01-24T05:43:54.507 回答