Индикатор активности во всех ячейках таблицы, отображается только в последней - PullRequest
1 голос
/ 11 октября 2011

Я пытаюсь добавить простой UIActivityIndicatorView для нескольких ячеек таблицы. Индикатор активности - это один и тот же объект для каждой ячейки. Однако по какой-то причине он отображается только в последней ячейке таблицы.

- (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;
}

Мне кажется, что в этом коде каждый объект ячейки должен захватывать указатель на одно и то же представление активности, поэтому вспомогательное представление каждой ячейки должно отображать одинаковый индикатор активности. Тем не менее, результат - ничто в дополнительном представлении любой ячейки, кроме последнего в табличном представлении, которое отображает индикатор активности, как и ожидалось. Спасибо за любые подсказки относительно того, почему это происходит.

1 Ответ

0 голосов
/ 11 октября 2011

Ваш _activityView - это отдельный объект. Так что это должно быть нарисовано где-то на экране. Поскольку это один объект, он будет нарисован только один раз.

Когда вы назначаете его новой ячейке, он обновляет внутренние переменные. Я не уверен, какие из них. Но эти внутренние переменные отвечают за его положение на экране.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...