Обновить стиль редактирования UITableViewCell в зависимости от содержимого - PullRequest
5 голосов
/ 11 апреля 2011

Я создаю табличный интерфейс, похожий на iPad Contacts, в котором пользователь может добавить в список строк, коснувшись пустой строки внизу. Таблица всегда находится в режиме редактирования, и непустые строки должны иметь стандартный значок редактирования удаления слева. Как только пользователь начинает вводить последнюю пустую строку, слева должен быть добавлен значок удаления (и добавлена ​​новая пустая строка).

Кто-нибудь знает, как заставить UITableView обновлять стиль редактирования по требованию? Все работает, за исключением того, что значок удаления не появляется до тех пор, пока пользователь не прокрутит строку из поля зрения, а затем снова не отобразит ее.

Вот моя реализация editStyleForRowAtIndexPath:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
           editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
   if (/* text field contains data */)
   {
      return UITableViewCellEditingStyleDelete;
   }
   else
   {
      return UITableViewCellEditingStyleNone;
   }
}

Ответы [ 2 ]

11 голосов
/ 14 апреля 2011

Я боролся с этой же проблемой вчера. Вы в основном должны переключить свойство режима редактирования табличного представления. После того, как вы это сделаете, он обновит стиль редактирования вашей ячейки.

Вот код, который помогает мне:

self.tableView.editing = NO;
self.tableView.editing = YES;

Это дает то, что мне кажется точно таким же, как приложение контактов. Как минимум, это обновит ваш стиль редактирования.

0 голосов
/ 11 апреля 2011

Попробуйте позвонить reloadRowsAtIndexPaths:withRowAnimation: в редактируемой строке. (Я не уверен, если это испортит статус первого респондента в вашем текстовом поле или нет.)

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