2011-04-11 2 views
5

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

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

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

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

ответ

10

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

Вот код, который делает трюк для меня:

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

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

+0

Это работает, спасибо! Может быть, я должен задать это по новому вопросу, но вы также нашли способ удалить курсор UITextField активного ответчика, когда значок удаления используется, как это делает Контакты? –

+0

Нет, я никогда не смотрел на это, потому что это не было чем-то, что меня действительно беспокоило. –

+0

Жаль, что я нашел это пару часов назад. – smparkes

0

Try вызова reloadRowsAtIndexPaths:withRowAnimation: на строку редактируется. (Я не уверен, что это испортит первый статус ответчика в вашем текстовом поле или нет.)

+0

Да, к сожалению, это путается с первым ответчиком. –

Смежные вопросы