UITableView перезагрузить вид ячеек - PullRequest
0 голосов
/ 01 апреля 2011

Как я могу перезагрузить весь просмотр таблицы?В -tableView:cellForRowAtIndexPath: я сравниваю данные онлайн с данными на устройстве пользователя, и если они не совпадают, я показываю кнопку для загрузки контента.После действий, связанных с этой кнопкой, я хотел бы обновить весь просмотр таблицы, чтобы снова подать жалобу на содержимое в сети с локальным.

reloadData фактически обновляет значения, но не удаляет эти кнопки.Я хотел бы изменить способ отображения ячеек ..

Другими словами, я хочу, чтобы это условие (в -tableView:cellForRowAtIndexPath:) работало, и оно не работает:

    if (![[NSFileManager defaultManager] fileExistsAtPath:someDir isDirectory:nil]) {   
        UIButton *bt = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        (...)
        [cell addSubview:bt];
    }

Чтобы обновитьтаблица теперь я должен вытолкнуть viewcontroller и нажать его снова.Я хотел бы сделать это с помощью кнопки на navBar.

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 01 апреля 2011
UITableViewCell* cell = [tableView dequeueReusableCellWithIdentifier: @"your-id"];
if (cell)
{
     //Check if it should contain a button. If it shouldn't remove it
}
else
     //Create a fresh new cell
1 голос
/ 01 апреля 2011

Это потому, что вы кэшируете ячейки с dequeueReusableCellWithIdentifier.Проверьте документы.Вы должны кэшировать 2 типа ячеек, с кнопкой и без кнопки.

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