gpt4 book ai didi

ios - UITableView 单元格显示错误图像

转载 作者:塔克拉玛干 更新时间:2023-11-02 10:02:00 27 4
gpt4 key购买 nike

我有一个包含两个单元格的 UITableView。一个有图像的单元格和一个没有图像的单元格。当没有图像的单元格显示在有图像的单元格下方时,一切都很好(Image 1)。但是当我对列表进行排序并且没有图像的单元格显示在带有图像的单元格上方时,没有图像的单元格显示与另一个单元格相同的图像(Image 2)。几天来我一直在为这个问题而苦苦挣扎,但我找不到问题出在哪里。

这里是设置图片的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];

Object *myObject = [[Datamodel sharedInstance] objectAtIndex:(int)indexPath.row];
cell.textLabel.text = myObject.name;

if([myObject.imageNames count] != 0 && !myObject.thumbnail)
{
myObject.thumbnail = [[NSString alloc] initWithString:[myObject.imageNames objectAtIndex:0]];
}

if(myObject.thumbnail)
{
NSLog(@"Setting thumbnail");
NSString *pathToImgData= [[NSHomeDirectory() stringByAppendingPathComponent:@"Documents" ]stringByAppendingPathComponent:@"ImgData"];
NSMutableString *imgPath = [[NSMutableString alloc] initWithString:pathToImgData];
[imgPath appendString:@"/"];
[imgPath appendString: myObject.thumbnail];
UIImage* image = [UIImage imageWithContentsOfFile:imgPath];
UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(8, 8, 128, cellHeight-16)];
imv.image = image;
[cell addSubview:imv];
}
return cell;
}

关于控制台输出,只有一个对象进入 if(myObject.thumbnail) 条件,因此仅对于应该有图像的 Cell,图像集:

2015-03-01 ***** Cell with image *****
2015-03-01 --> Setting the image

2015-03-01 ***** Cell wihout image *****
2015-03-01 --> NOT setting the image

2015-03-01 ***** Cell without image *****
2015-03-01 --> NOT setting the image
2015-03-01 ***** Cell with image *****
2015-03-01 --> Setting the image

以及排序列表的代码:

-(void)sortList{

NSSortDescriptor *sortObjectName = [NSSortDescriptor sortDescriptorWithKey:@"objectName" ascending:YES comparator:^NSComparisonResult(id obj1, id obj2) {
return [obj1 caseInsensitiveCompare:obj2];
}];
[self.arrayData sortUsingDescriptors:@[sortObjectName]];
}

最佳答案

您的问题是您没有将不需要的单元格图像设置为nil

UITableViewCells 被重用,因此您需要配置单元格中您想要或不想要的每个值。

只需弄清楚是否需要显示图像,如果需要则设置它,如果不需要则设置

UIImageView.image = nil;

关于ios - UITableView 单元格显示错误图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28793327/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com