2013-04-24 13 views

risposta

3

Solo un approccio:

  1. avere un pulsante di cancellazione sulla vista e assegnare un metodo ad esso
  2. In questo metodo, attivare un BOOL isDeleteEnabled (o qualsiasi altra cosa è il nome) per TRUE
  3. Ricarica la UITableView e cellForRowAtIndexPath controllo per quel valore BOOL
  4. Se TRUE quindi caricare tutto il UITableViewCell come cellule personalizzati con tasto di cancellazione su di esso (è necessario impostare il metodo di selezione per la cancellazione di una riga)
  5. Cancellare tutte le celle che si desidera toccando il pulsante sulle cellule
  6. Dopo aver eliminato le vostre voi scelte può premere nuovamente il pulsante principale e ginocchiera il valore per isDeleteEnabled
  7. ancora ricarica UITableView e questa volta in cellForRowAtIndexPath controllare il valore di isDeleteEnabled - che sarà FALSE. Quindi, è necessario caricare UITableViewCells normale (o originale).

Ho fatto la cosa molto simile seguendo questo approccio.

Inoltre, non ho postato il codice per esso per tre motivi:

  • sarebbe troppo lungo in termini di dimensioni
  • Il codice sua disposizione alla mia macchina di lavoro (a cui ho non ho l'accesso al momento)
  • Rovinerà la gioia di programmare un simile compito. Fallo da solo. Lo sostituirai con lo .
+0

Grazie! In realtà, ho deciso di implementarlo manualmente nel modo in cui hai suggerito e vedere come va. – user481960

+1

Il tuo link GitHub è morto ... – Atomix

-2

Non è necessario un pulsante per attivarlo. Se si implementa il seguente delegato, è possibile scorrere e cancellare direttamente la cella.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
    //Delete the row 
    [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; 
    } 
+0

Il problema è che non voglio scorrere.Devo premere un pulsante e quindi dovrebbe apparire il pulsante Elimina. Ma non voglio che appaia il cerchio negativo rosso a sinistra. È possibile? – user481960

+0

In questo caso dovresti scrivere il tuo metodo. – Mani

-2

La mia idea, non pulsante non usare, ma u può strisciare la cella per eliminare con il metodo:

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

    if (editingStyle == UITableViewCellEditingStyleDelete) 
    { 
     //Use actionsheet or deleteRowsAtIndexPaths 
    } 

} 
+0

vuole il pulsante Elimina ma non il segno meno – Firdous

+1

Sì, gli suggerisco di scorrere la cella per visualizzare il pulsante Elimina. Se vuole ottenere come il suo desiderio solo un codice personalizzato. –

1

così semplice se non volete che appaia il segno meno, si consideri attuazione si possiede soluzione di quella predefinita, inserire un pulsante Elimina e fornire un'animazione ad esso, fare come richiesto

-3

Ignora per supportare la modifica della vista tabella.

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (editingStyle == UITableViewCellEditingStyleDelete) { 
     //add code here for when you hit delete 
    }  
} 
Problemi correlati