Как перезагрузить UITableViewCell - PullRequest
0 голосов
/ 28 ноября 2011

В другом вопросе было сказано перезагрузить только необходимые UITableViewCells вместо всей таблицы.

Как это можно сделать.Я должен сказать, что в настоящее время я немного невежественен, потому что мои пользовательские ячейки не "напрямую" связаны с tableView.Я создаю их экземпляр в методе cellForRowAtIndexPath.

//default
        static NSString *CellIdentifier = @"Cell";

        TwoRowCell *cell = (TwoRowCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
        if (cell == nil) {

            NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"TwoRowCell" owner:self options:nil];
            cell = (TwoRowCell *)[nib objectAtIndex:0];
        }

        // Configure the cell...

        cell.title.text = [dict objectAtIndex:indexPath.row];
        cell.value.text = @"";

        return cell;

Как мне получить доступ к ячейкам и перезагрузить только ячейку.Идея: иметь некоторые делегат-методы и при обновлении ячейки перезагрузить ячейку.В настоящее время я перезагружаю всю таблицу.

BR, mybecks

Ответы [ 2 ]

2 голосов
/ 28 ноября 2011

Если некоторые из ваших данных изменились, вы можете позвонить - (void)reloadRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation на UITableView, чтобы перезагрузить только эту UITableViewcell. Он снова вызовет cellForRowAtIndexPath.

2 голосов
/ 28 ноября 2011

Просто вызовите reloadData для вашей таблицы - она ​​не перезагружает всю таблицу, она только перезагружает ячейки, которые (или, точнее, должны стать) видимыми.

Ваши ячейки напрямую связаны с таблицей, а cellForRowAtIndexPath является мостом - это то, что система вызывает для определения способа отображения ячейки. Например, этот метод вызывается много раз при прокрутке.

В одной ситуации в прошлом я вызывал reloadRowsAtIndexPaths, чтобы перезагрузить только одну (или несколько) конкретных ячеек. В этом случае у меня была кнопка на ячейке, и я хотел отключить кнопку после того, как она была нажата один раз.

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