2010-09-17 2 views
10

Удаленный доступ к удалению функциональности не работает в моем представлении таблицы. Я применил делегат commitEditingStyle и кнопку «Редактировать» на панели навигации. Следовательно, когда пользователь нажимает кнопку редактирования, кнопки удаления и добавления отображаются соответствующим образом. Однако при прокрутке кнопка удаления не появляется и кажется, что она не распознает салфетки как вызов метода setEditing.Проведите пальцем по удалению, не работая

Я тогда реализованы делегатов willBeginEditingRowAtIndexPath и didEndEditingRwoAtIndexPath следующим образом:

-(void)tableView:(UITableView*)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath 

{ 
NSLog(@"WILL BEGIN EDITING"); 

[self.tableView setEditing:YES animated:YES]; 

} 


-(void)tableView:(UITableView*)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath 

{ 

[self.tableView setEditing:NO animated:YES]; 

} 

Однако это не оказывает никакого влияния ни. Какая может быть проблема? Я включил multi-touch для представления таблицы в IB, и каждая ячейка оснащена аксессуаром DetailDisclosureButton.

ответ

7

Для коромысло-к-удаления функциональности, вы должны реализовать

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (editingStyle == UITableViewCellEditingStyleDelete) 
     ; // Delete. 
} 

EDIT: я не читал этот вопрос достаточно хорошо.

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

+0

Да, я реализовал это. Я упомянул об этом выше. У меня нет доступа к устройству прямо сейчас, поэтому я тестирую симулятор. Это может быть проблема с симулятором? – Nathan

+0

Так вы и сделали. Сожалею. Проверяйте отредактированный ответ на всякий случай. Симулятор не работает в режиме 1-1, особенно скорость. –

+0

Пробовал, что на тренажере. Не работает. Также установлено приложение на iPod Touch, работающее под управлением 3.1.2. Прокрутка для удаления не работает в этом тоже. Очень озадачительно. Im задается вопросом, не потеряет ли Im при выполнении некоторых делегатов? – Nathan

0

вы реализовать метод tableView:editingStyleForRowAtIndexPath: и он вернется UITableViewCellEditingStyleDelete

+0

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

+0

проверьте мой ответ выше. – Nathan

+0

рад, что я смог заставить вас взглянуть на нужный фрагмент кода. Обычно такие отладки обычно сложны –

4

я делал следующее в Tableview: editingStyleForRowAtIndexPath: метод делегата: -

if (self.editing == NO || !indexPath) 
{ 
    return UITableViewCellEditingStyleNone; 
} 

Это должно было не вернуть редактирование стиля ни если не было выбрано indexPath. По какой-то причине всякий раз, когда выполнялось действие салфетки, это конкретное условие выполнялось. При комментировании приведенного выше фрагмента кода, удаление удаленных действий было прекрасным.

Спасибо всем за вашу помощь.

4

Вам нужно реализовать:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath; 


- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath; 

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath; 

С этих трех вещей, которые вы должны быть хорошо идти. . (Я пропустил от в commitEditingStyle и он никогда не работал

+1

Я дал эти 3 метода делегата, но не работал. –

1

Ключ, чтобы сделать его работа заключается в реализации:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath; 

И помните, чтобы положить его в «UITableViewDataSource» вместо «UITableViewDelegate»

-2

-(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath метод делегата также необходимо реализовать для работы функциональность салфетки.

4

Если все другие советы сделать Не пытайтесь проверить, есть ли у вас распознаватель жестов в коде. Это не сработает, если у вас есть подобные вещи в некоторых подкладках.

+0

Имел ту же проблему, но это было с UITapGesture –

+0

Вы гений! У меня была проблема с жестким движением ползунка в течение нескольких месяцев, а теперь с tableviewCell, и проблема была распознавателем жестов в среде, которую я использовал. –

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