La cosa complicata dell'eliminazione delle celle è questa: quando si scorre da sinistra a destra per mostrare il pulsante "Elimina", UITableViewCell passa allo stato UITableViewCellStateShowingDeleteConfirmationMask
, ma non imposta lo stato UITableViewCellStateEditingMask
. Ciò significa che non è possibile modificare lo accessoryView
per lo stato di modifica.
Il modo per aggirare questo è guardare il metodo willTransitionToState:
di UITableViewCell. Quello che puoi fare è intercettare la chiamata a questo metodo che inserirà la cella nello stato di conferma dell'eliminazione e mostrerà le tue visualizzazioni anziché il pulsante di conferma "Elimina" che normalmente viene mostrato.
Per ulteriori informazioni, consultare the docs per willTransitionToState:
per UITableViewCell.
Grazie Tim. Questo mi consente di intercettare lo swipe per entrare in modalità di modifica, ma non mi è chiaro come fermare UITableViewCell che mostra il proprio pulsante 'cancella'. Attualmente questo succede quando passo il messaggio a super - che la documentazione dice sia obbligatoria. Si sta anche proponendo che l'unico modo per farlo è quello di aggiungere il mio UIButton e fare il cablaggio di eliminazione da solo piuttosto che fare affidamento sulla tabella dataSourceView: commitEditingStyle: forRowAtIndexPath :? Sembra strano che la gestione dell'eliminazione ignori tutte le opzioni di personalizzazione di UITableViewCell. –
Hm. Non sono abbastanza sicuro che sia possibile sopprimere completamente la visualizzazione del pulsante Elimina incorporato di UITableViewCell, a meno che non si faccia come suggerito e si imposta il proprio pulsante di eliminazione invece di chiamare il metodo super. Potresti forse intercettare willTransitionToState: i messaggi che lo posizionano in modalità Delete e li reindirizzano per posizionare la tabella in modalità di modifica, che (IIRC) fornisce anche un controllo di eliminazione (il piccolo simbolo rosso meno). – Tim
Sembra azzardato. Penso che per ora lavorerò attorno al pulsante Apple e se avrò tempo implementerò il mio rilevamento di scorrimento e controllo di cancellazione. –