所有tableview单元格中的活动指示器,仅显示在最后一个

时间:2011-10-11 16:40:38

标签: ios uitableview

我正在尝试向多个表格单元格添加一个简单的UIActivityIndi​​catorView。活动指示符是每个单元格的相同对象。但是,出于某种原因,它只显示在表格的最后一个单元格中。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{    
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }

    cell.accessoryView = _activityView;

    cell.textLabel.text = [_tableItems objectAtIndex:indexPath.row];
    cell.textLabel.textColor = DARK_GRAY;
    cell.detailTextLabel.text = [_tableSubtitles objectAtIndex:indexPath.row];
    cell.detailTextLabel.textColor = DARK_GRAY;

    return cell;
}

在我看来,此代码应该让每个单元格对象抓取指向同一活动视图的指针,因此每个单元格的附件视图应显示相同的活动指示符。但是,除了tableView上的最后一个视图外,任何单元格的附件视图都没有结果,它会按预期显示活动指示器。感谢有关为何发生这种情况的任何提示。

1 个答案:

答案 0 :(得分:0)

您的_activityView是一个单独的对象。所以它必须在屏幕上的某个地方绘制。由于它只是一个对象,因此只会被绘制一次。

将其分配给新单元格时,它会更新内部变量。我不确定哪些。但是这些内部变量是它在屏幕上的位置的原因。