Desarrollo de IOS: estilo de edición de libreta de direcciones privada (60)

I. Resumen

Este artículo presenta principalmente el contenido:

  • Agregue un botón de eliminar en el lado derecho de la barra de navegación (hay un botón de agregar)
  • Haga clic en el botón eliminar para eliminar la entrada de la vista de tabla
  • Llamar antes de editar la vista de tabla, cambiar el modo de edición en la vista de tabla (agregar, eliminar modo)

Dos representaciones

Agregue un botón de eliminar a la derecha de las tres barras de navegación (hay un botón de agregar)

3.1 Agregar a través de Main.storyboard

  • Haga clic en "+" en la parte superior de Xcode, seleccione BarButtonItem y seleccione Papelera para el elemento del sistema

     

3.2 Agregar por código

Lógica de negocios

  • Ahora obtenga el botón "agregar" en el diseño
  • Crea un botón "eliminar" a través del código
  • Agregue los dos botones anteriores a través de aviationItem.rightBarButtonItems

Código

1 
2 
3 
4 
5 
6
// Obtener + botón 
UIBarButtonItem * add = self.navigationItem.rightBarButtonItem; 
   
// Agregar un botón de papelera 
UIBarButtonItem * trash = [[UIBarButtonItem alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemTrashselector objetivo: auto acción 
:) rightBarButtonItems = @ [agregar, papelera];

Cuatro haga clic en el botón eliminar para eliminar la entrada de la vista de tabla

4.1 Descripción lógica

  • Establezca el modo de edición para la vista de tabla, cuando haga clic en el botón eliminar, cambie el modo de edición de la vista de tabla
  • Cuando se elimina el modo de edición, se llamará al método commitEditingStyle para actualizar los datos y las operaciones de diseño.

4.2 Implementación del código

método de eliminación

1
[self.tableView setEditing:! self.tableView.editing animado: SÍ];

commitEditingStyle

1 
2 
3 
4 
5
// Eliminar datos 
[self.contacts removeObjectAtIndex: indexPath.row]; 
// Actualizar la interfaz 
// 
[self.tableView reloadData]; // Actualización global [self.tableView deleteRowsAtIndexPaths: @ [indexPath] withRowAnimation: UITableViewRowAnimationLeft]; // Eliminar Parcial

Cinco cambian el modo de edición en la vista de tabla (modo agregar, eliminar)

5.1 Descripción lógica

  • La vista de tabla llamará al método editStyleForRowAtIndexPath antes de editar, que puede establecer el estilo de las entradas en la vista de tabla
  • Por ejemplo, la entrada 0 es UITableViewCellEditingStyleInsert, las otras son UITableViewCellEditingStyleDelete
  • Agregue la función correspondiente al estilo correspondiente

5.2 Implementación del código

editStyleForRowAtIndexPath

1 
2 
3 
4 
5 
6 
7
- (UITableViewCellEditingStyle) tableView: (UITableView *) tableView editStyleForRowAtIndexPath: (NSIndexPath *) indexPath 
{ 
    if (indexPath.row == 0) { 
        return UITableViewCellEditingStyleInsert; 
    } 
    return UITableViewCellEditingStyleDelete; 
}

UITableViewCellEditingStyleInsert

1 
2 
3 
4
Contact * contact = [Contact contactWithName: @ "grace" teléfono: @ "123"]; 
//[ self.contacts addObject: contact]; // 添加 到 最后 一行
[self.contacts insertObject: contact atIndex: indexPath.row + 1]; 
[self.tableView reloadData];

Supongo que te gusta

Origin blog.csdn.net/Calvin_zhou/article/details/109140073
Recomendado
Clasificación