功能不正确的tableView数据和充电

时间:2013-08-05 06:34:39

标签: ios tableview reloaddata

-Hi,我有一个tableview重新加载数据的问题,我想要做的是你把所选的单元格放到蓝色并改变一个图像,问题是如果我做了[self.mytableview reloadData ]在didselectedRow蓝色背景中消失,如果我这样做,单元格的图像没有改变,我对这段代码感到有些失落,我感谢

if (indexPath.row == _selectedRow) {

            UIImageView *favView = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"favIconSelected.png"]];
            CGRect frame = favView.frame;
            frame.origin.x = 294;
            frame.origin.y = 7;
            favView.frame = frame;

            [cell.contentView addSubview:favView];

            [favView release];
        }

 cell.selectedBackgroundView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:SELCETED_BGIMGCELL]]autorelease];



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


    Product *p = [_productList objectAtIndex:indexPath.row];

    _selectedRow=indexPath.row;
    [_delegate productWasSelected:p];
    [self.myTableView reloadData];

}

1 个答案:

答案 0 :(得分:0)

您根本不需要致电reloadData。您需要做的就是更新所选的单元格。

didSelectRowAtIndexPath方法中,您可以通过调用cellForRowAtIndexPath上的tableView直接获取该单元格。这将返回显示的实际单元格,您可以直接设置它正在显示的图像。

UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
cell.imageView.image = ...;

或者,如果在配置每个实例时为其提供正常和选定的图像,则可以从单元子类控制图像显示。