我有一个填充了一系列名称和图像的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;
}
答案 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;
}
希望有所帮助。