gpt4 book ai didi

ios - cellforrowatindexpath 混合单元格中的数据

转载 作者:行者123 更新时间:2023-11-29 02:53:54 26 4
gpt4 key购买 nike

我的单元格中的数据在 cellforrowatindexpath 中混淆了。我更改了标签的文本颜色和文本,但即使 isComplete 值更改,单元格颜色和文本也会随机更改。

例如,当我滚动表格 View 时,完成的任务有时是红色的。奇怪的是,这只发生在我滚动到的单元格上,而不是最初加载并在屏幕上可见的单元格。

这是我的方法:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TaskCell *cell = [tableView
dequeueReusableCellWithIdentifier:@"TaskCell"];
PFObject *player = (_tasks)[indexPath.row];

NSString *taskType = player[@"name"];
NSNumber *completeNum = player[@"complete"];
BOOL isComplete = [completeNum boolValue];


UIImage *completeImage;
NSLog(@"task: %@ is complete %@", player[@"taskDescription"], player[@"complete"]);
if(isComplete){
completeImage = [UIImage imageNamed:@"check"];
cell.taskDescriptionLabel.text = player[@"taskDescription"];
}else{
completeImage = [UIImage imageNamed:@"x2"];
cell.taskDescriptionLabel.text = @"Incomplete";
cell.taskDescriptionLabel.textColor = [UIColor redColor];
}

cell.taskCompletedImage.image = completeImage;


cell.TaskTypeLabel.text = taskType;

return cell;
}

为什么会这样?

最佳答案

假设单元格被重用,你会看到红色,因为你正在使用一个具有红色的单元格的重用实例。通过覆盖 prepareForReuse 方法来重置颜色。或者每次单元格配置如下时重置颜色。

if(isComplete){
completeImage = [UIImage imageNamed:@"check"];
cell.taskDescriptionLabel.text = player[@"taskDescription"];
cell.taskDescriptionLabel.textColor = [UIColor blackColor];
}else{
completeImage = [UIImage imageNamed:@"x2"];
cell.taskDescriptionLabel.text = @"Incomplete";
cell.taskDescriptionLabel.textColor = [UIColor redColor];
}

关于ios - cellforrowatindexpath 混合单元格中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24152080/

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