Crazy TableView(或者更可能是我只是一个混蛋);-)

时间:2010-12-30 20:43:55

标签: uitableview

我对所有目标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”图像和附件,这是通常不可能。

我是疯了还是桌面视图?

你能帮我解决这个问题吗,我无法弄清楚它为什么不起作用......: - ((

提前多多感谢。

麦克

2 个答案:

答案 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;

}