2010-06-07 8 views

risposta

28

Implementare the -tableView:canEditRowAtIndexPath: method nell'origine dati. Restituire NO per quelle file.

+1

Grazie. Ma spero che alcune righe (tutte le righe possano essere spostate) possano essere spostate piuttosto che eliminate (alcune righe sono disabilitate la funzione di cancellazione, le altre sono abilitate), è possibile? – arachide

+0

@user: usa '-tableView: canMoveRowAtIndexPath:' per lo spostamento. – kennytm

+2

Grazie. Ho usato - (BOOL) tableView: (UITableView *) tableview canMoveRowAtIndexPath: (NSIndexPath *) indexPath { \t \t return YES; \t } - (BOOL) tableView: (UITableView *) tableView canEditRowAtIndexPath: (NSIndexPath *) indexPath; { \t Riga intero NS = [riga IndexPath]; \t int vv = [[oggetto myArrayAtIndex: riga] isEditable]; \t if (! Vv) \t { \t ritorno NO; \t} \t altro \t { \t \t ritorno SI; \t \t \t} } ma sembra impossibile impostare una cella "Abilita spostamento" e "Disattiva Elimina" allo stesso tempo. – arachide

8

L'utilizzo di canEditRowAtIndexPath non consente l'allineamento della riga con altre celle in stile raggruppato. che può sembrare brutto.

io uso UITableViewCellEditingStyleNone, per le righe che non si desidera visualizzare il controllo di modifica (meno/più pulsante), mettere questo nella vostra somma

(UITableViewCellEditingStyle) tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{} 
9

questo post fino alla perfezione, Is there any way to hide "-" (Delete) button while editing UITableView

nel caso in cui non si vuole leggere il post il succo è sulla riga non si desidera eliminare, ma vuole permettere mossa consecutive: impostare Modifica stile per la riga di UITableViewCellEditingStyleNone

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{ 
    return UITableViewCellEditingStyleNone; 
} 
1

In base alla tua domanda, capisco che desideri nascondere semplicemente il pulsante Elimina dalla visualizzazione nella prima riga. si prega di impostare la modifica di Tableview su Sì e aggiungere il codice sottostante

- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath { 

    if(indexPath.row==0) 
    { 
     return NO; 
    } 
    return YES; 
} 
+0

Funziona ma disabiliterà anche le righe in movimento. Se il movimento della cella deve essere consentito insieme alla disattivazione della soluzione del pulsante di eliminazione suggerita da @Youyou e http://stackoverflow.com/questions/2281394/uitableview-editable-rearrangeable-without-cells-beeing-deletable/2281456#2281456 di AlexC è l'opzione migliore per andare. – CuriousDev

Problemi correlati