Как удалить строку Таблицы в iPhone

Полный доступ к стеку вызовов:

public static void Main()
{
  StackTrace stackTrace = new StackTrace();           // get call stack
  StackFrame[] stackFrames = stackTrace.GetFrames();  // get method calls (frames)

  // write call stack method names
  foreach (StackFrame stackFrame in stackFrames)
  {
    Console.WriteLine(stackFrame.GetMethod().Name);   // write method name
  }
}

Так, при взятии первого - Вы знаете то, что функционирует, Вы находитесь в. Если Вы создаете помощника, прослеживающего функцию - берут тот перед последним - Вы будете знать свою вызывающую сторону.

5
задан Chilly Zhong 23 July 2009 в 02:56
поделиться

2 ответа

Чтобы получить эффект смахивания, вам необходимо реализовать метод делегата представления таблицы

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

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

В качестве примера:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
  [tableView beginUpdates];    
  if (editingStyle == UITableViewCellEditingStyleDelete) {
    // Do whatever data deletion you need to do...
    // Delete the row from the data source
    [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:UITableViewRowAnimationTop];   
  }       
  [tableView endUpdates];
}

Надеюсь, что это поможет.

32
ответ дан 18 December 2019 в 05:31
поделиться

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

ОБНОВЛЕНИЕ: iPhoneCoreDataRecipes дает, вероятно, именно то, что вы ищете.

По теме, вот один из самых приятных методов:

// If I want to delete the next 3 cells after the one you click
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
  NSMutableArray* indexPaths = [NSMutableArray array];
  for (int i = indexPath.row + 3; i < indexPath.row + 3; i++)
  {
    [indexPaths addObject:[NSIndexPath indexPathForRow:i inSection:0]];
  }

  [tableView beginUpdates];
  [tableView deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];
  [tableView endUpdates];
  [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

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

2
ответ дан 18 December 2019 в 05:31
поделиться