Значки удаления слева не отображаются в режиме редактирования UITableview - PullRequest
0 голосов
/ 12 января 2011

У меня есть приложение на основе основных данных / uitableview. На самом деле 80% кода до сих пор совпадает с примером приложения Apple CoreDataRecipes. Моя проблема в том, что когда я вхожу в режим редактирования (нажатием кнопки редактирования), в левой части строк нет «значков удаления». Бампер.

alt text

Различия в коде с CoreDataRecipes:

  1. У меня есть пользовательская ячейка UITabelview с файл пера вместо только кода.
  2. My Tableview - это выход в моем классе. Итак, мой класс RecipeListTableViewController является UIViewController с делегатами Tableview вместо UITableViewController

Что я пробовал:

  • Tableview работает отлично. Нет проблем со связыванием или делегированием
  • Я проверил, действительно ли таблица входит в режим редактирования. Оно делает. Вы можно увидеть, потому что кнопка «Добавить» отключен.
  • Я проверил, в порядке ли стиль редактирования. Это должно быть по умолчанию, но чтобы убедиться, что я добавил:

    (UITableViewCellEditingStyle) tableView: (UITableView *) tableVieweditingStyleForRowAtIndexPath (NSIndexPath *) indexPath {return UITableViewCellEditingStyleDelete;}

  • Я проверил, находятся ли значки удаления там, где нет моего сотового просмотра. Отсутсвуют. Теперь я думаю, что поведение клетки при перемещении вправо обрабатывается iOS.

  • Когда я провожу ячейку, появляется правая кнопка удаления и работает как надо
  • Я пытался построить свое поведение с помощью layoutSubviews. Ничего не изменилось при входе в режим редактирования. Но когда я провожу пальцем, теперь я вижу свое подпредставление в одном ряду:

alt text

У кого-нибудь есть идеи? Это должно быть что-то простое.

Ответы [ 4 ]

3 голосов
/ 16 мая 2013

Убедитесь, что

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

    return YES;
}

Если не задано значение YES, значки не будут активированы. По умолчанию установлено возвращение NO

1 голос
/ 15 августа 2011

Так как ваш UIViewController, таблица не получает вызов setEditing. Просто добавьте:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [self.tv setEditing:editing animated:YES];
}
1 голос
/ 12 января 2011

Я думаю, что вы не добавили строку tableView.editing=YES при нажатии кнопки Изменить

Попробуйте установить ее!

0 голосов
/ 02 сентября 2015

Убедитесь, что вы настроили выход / делегат / источник данных тогда эти:

-(void)editButtonTapped
{
    [self.tableView setEditing:YES animated:YES];
}



-(BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
    return YES;
}

-(UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return UITableViewCellEditingStyleDelete;
}
...