我对所有目标C都疯了。
我今天下午1点半去睡觉,在我的应用上过夜,但我喜欢它......
那不管怎么说......
我的问题是......
我有一个表视图,它在显示数据时评估一个语句:它是这样的:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"CustomCell";
cell = ((MainCell *)[self.tableView dequeueReusableCellWithIdentifier:CellIdentifier]);
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"MainCell" owner:self options:nil];
}
Entry *entry = [fetchedResultsController objectAtIndexPath:indexPath];
cell.topLabel.text = [@"* " stringByAppendingString: entry.entryname];
cell.bottomLabel.text = entry.textbody;
if ([entry.active boolValue] == YES) {
cell.cellImageView.image = [UIImage imageNamed:@"check.png"];
}
else {
cell.cellImageView.image = nil;
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
return cell;
}
问题是第一次显示数据时,当我向下滚动桌面视图时会满足条件,但是当我向上滚动时,有时候,我得到了我的“check.png”图像和附件,这是通常不可能。
我是疯了还是桌面视图?
你能帮我解决这个问题吗,我无法弄清楚它为什么不起作用......: - ((
提前多多感谢。
麦克
答案 0 :(得分:1)
当细胞被重复使用时,您只需设置图像或附件,而不是在第一种情况下清除附件。因此,当您重复使用带附件的单元时,即使它没有激活,也可能在上次使用附件时仍然使用附件。
答案 1 :(得分:0)
Waouh,现在正在工作。万分感谢。
代码是
if ([entry.active boolValue] == YES) {
cell.cellImageView.image = [UIImage imageNamed:@"check.png"];
}
else {
cell.cellImageView.image = nil;
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}
但应该是:
if ([entry.active boolValue] == YES) {
cell.cellImageView.image = [UIImage imageNamed:@"check.png"];
cell.accessoryType = UITableViewCellAccessoryNone;
}
else {
cell.cellImageView.image = nil;
cell.accessoryType = UITableViewCellAccessoryDetailDisclosureButton;
}