滚动时自定义tableViewCell显示不正确

时间:2013-12-17 13:31:53

标签: objective-c uitableview

我有一个填充了一系列名称和图像的tableview。我通过继承UITableViewCell添加了一个自定义单元格。自定义单元格包含一个UIImage,其模式设置为“Aspect Fill”,高度和宽度设置为52,以便整齐地适合我的自定义单元格。当我运行应用程序时,它会加载所有图像并正确地将它们放入我指定的尺寸的容器视图中。问题是每当我滚动视图时,重用的单元格显示图像就好像我没有自定义单元格一样。换句话说,不正确。这是我的cellForRowAtIndexPath方法

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *cellIdentifier = @"Cell";
    customCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
    contact = contactsArray[indexPath.row];
    NSString *firstName = contact[@"mutableFirstName"];
    NSString *lastName = contact[@"mutableLastName"];
    UIImage *image = contact[@"mutableImage"];
    cell.imageView.image = image;
    cell.firstNameLabel.text = firstName;
    cell.lastNameLabel.text = lastName;
    return cell;
}

1 个答案:

答案 0 :(得分:1)

如果,如果你的 customCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 返回nil ...... ???

将您的实施修改为:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    static NSString *CellIdentifier = @"Cell";

    customCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if(cell == nil) {
        cell = [[customCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.backgroundColor = [UIColor clearColor];
    }

    cell.imageView.image = image;
    cell.firstNameLabel.text = [NSString stringWithFormat:@"%@", contact[@"mutableFirstName"]];
    cell.lastNameLabel.text = [NSString stringWithFormat:@"%@", contact[@"mutableImage"]];
    return cell;
}

希望有所帮助。