Eu quero algo semelhante ao aplicativo Alarme, onde você não pode deslizar para excluir a linha, mas ainda pode excluir a linha no modo Editar.
Quando comentado tableView: commitEditingStyle: forRowAtIndexPath :, desativei o furto para excluir e ainda tinha o botão Excluir no modo Editar, mas o que acontece quando pressiono o botão Excluir. O que é chamado?
ios
cocoa-touch
uitableview
uikit
eu vou
fonte
fonte
Só para deixar as coisas claras, deslizar para excluir não estará habilitado a menos que
tableView:commitEditingStyle:forRowAtIndexPath:
seja implementado.Enquanto estava em desenvolvimento, não o implementei e, portanto, deslizar para excluir não foi ativado. Claro, em um aplicativo acabado, ele sempre seria implementado, porque senão não haveria edição.
fonte
Versão Swift:
fonte
Você precisa implementar a função CanEditRowAt.
Você pode retornar .delete na função EditingStyleForRowAt para que ainda possa excluir no modo de edição.
fonte
Basicamente, você ativa ou desativa a edição usando os métodos
Se a edição estiver habilitada, o ícone de exclusão vermelho aparecerá e uma confirmação de exclusão será solicitada ao usuário. Se o usuário confirmar, o método delegado
é notificado da solicitação de exclusão. Se você implementar este método, deslizar para excluir é automaticamente ativado. Se você não implementar este método, deslizar para excluir não estará ativo; no entanto, você não poderá realmente excluir a linha. Portanto, até onde sei, você não pode conseguir o que pediu, a menos que use algumas APIs privadas não documentadas. Provavelmente é assim que o aplicativo da Apple é implementado.
fonte
Em C #:
Eu tive o mesmo problema onde era necessário habilitar / desabilitar linhas com a opção Excluir ao deslizar. Várias linhas precisavam ser deslizadas para a esquerda e excluídas, mantendo-as em outra cor. Consegui usando essa lógica.
Observe que deletedIndexes são uma lista de índices que são excluídos da tabela sem duplicatas. Este código verifica se uma linha foi excluída e, em seguida, desativa a passagem ou vice-versa.
A função de delegado equivalente é Swift is
canEditRowAtIndexPath
.fonte
Também me deparei com esse problema e resolvi com os códigos abaixo. espero que ajude você.
}
fonte