tutorial que español iphone cocoa

iphone - español - que es uikit ios



¿Hay alguna forma de ocultar el botón "-"(Eliminar) al editar UITableView? (4)

En mi aplicación para iPhone, tengo una UITableView en modo de edición, donde el usuario solo puede reordenar las filas sin permiso de eliminación.

Entonces, ¿hay alguna manera en la que pueda ocultar el botón rojo "-" de TableView? Por favor hagamelo saber.

Gracias


¡Aquí está mi solución completa, sin sangría (alineación 0left) de la celda!

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { return YES; } - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ return UITableViewCellEditingStyleNone; } - (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; } - (BOOL)tableView:(UITableView *)tableview canMoveRowAtIndexPath:(NSIndexPath *)indexPath { return YES; }


Esto detiene la sangría:

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; }


Me enfrenté a un problema similar en el que quería que las casillas de verificación personalizadas aparecieran en el modo de edición, pero no en el botón de eliminación ''(-)''.

La respuesta de Stefan me guió en la dirección correcta.

Creé un botón de alternar y lo agregué como una edición de AccessoryView a la Celda y lo conecté a un método.

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { .... // Configure the cell... UIButton *checkBoxButton = [[UIButton alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 40.0f, 32.0f)]; [checkBoxButton setTitle:@"O" forState:UIControlStateNormal]; [checkBoxButton setTitle:@"√" forState:UIControlStateSelected]; [checkBoxButton addTarget:self action:@selector(checkBoxButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; cell.editingAccessoryType = UITableViewCellAccessoryCheckmark; cell.editingAccessoryView = checkBoxButton; return cell; } - (void)checkBoxButtonPressed:(UIButton *)sender { sender.selected = !sender.selected; }

Implementado estos métodos delegados

- (BOOL)tableView:(UITableView *)tableview shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath { return NO; } - (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath { return UITableViewCellEditingStyleNone; }


Swift 3 equivalente a la respuesta aceptada con solo los funcs necesarios:

func tableView(_ tableView: UITableView, shouldIndentWhileEditingRowAt indexPath: IndexPath) -> Bool { return false } func tableView(_ tableView: UITableView, editingStyleForRowAt indexPath: IndexPath) -> UITableViewCellEditingStyle { return .none }