UITableView: spostamento di una riga in una sezione vuota

voti
4

Ho una UITableViewcon alcune sezioni vuote. Mi piacerebbe che l'utente sia in grado di spostare una riga in loro utilizzando i controlli modalità di modifica standard. L'unico modo che posso fare finora è di avere una riga fittizia nella mia sezioni vuote e cercare di nasconderlo utilizzando tableView:heightForRowAtIndexPath:per dare la riga fittizia di altezza pari a zero. Questo sembra lasciarlo come una riga 1-pixel. Probabilmente posso nascondere questo facendo un particolare tipo di cellula che ha appena riempito [UIColor groupTableViewBackgroundColor], ma c'è un modo migliore?

Questo è tutto nel modo raggruppato di UITableView.

UPDATE: Sembra che in movimento righe in sezioni vuote è possibile senza trucchi, ma la sensibilità è già abbastanza grave che non bisogno di trucchi per renderlo utilizzabile per gli utenti generici (che non saranno abbastanza pazienti per librarsi lentamente la fila intorno alla sezione vuota finché le cose click).

È pubblicato 17/03/2009 alle 17:07
fonte dall'utente
In altre lingue...                            


3 risposte

voti
1

Ho trovato che in iOS 4.3, la riga fittizia deve avere un'altezza di almeno 1 pixel per dare l'effetto desiderato di consentire una riga da spostare in quella sezione.

Ho anche scoperto che la riga fittizia è necessaria solo nella prima e ultima sezione; tutte le sezioni intermedie non hanno questo problema.

E sembra che in iOS 5.0, nessuna riga fittizie o trucchi speciali sono necessari a tutti.

Risposto il 20/12/2011 a 02:22
fonte dall'utente

voti
0

Ho scoperto che se si torna -1.0 dal metodo heightForRowAtIndexPath rimuoverà la linea 1 pixel.

Risposto il 08/01/2011 a 13:16
fonte dall'utente

voti
0

Mentre la gestione della modifica, è possibile controllare se la vista tabella è in modalità Edit. Utilizzare quella bandiera all'interno di cellForRowAtIndexPathdecidere tempo o non visualizzare la riga 'vuota'. In modalità 'normale', la riga non verrà visualizzato, ma quando l'utente tocca 'Modifica' cellForRowAtIndexPath dovrebbe ottenere chiamato di nuovo e questa volta decidere di visualizzare la riga. I dettagli di come farlo che dipendono dalla sorgente di dati e come si stanno incollando al display. Se non si è trovato di nuovo la chiamata, è possibile iniettare manualmente le righe con insertRowsAtIndexPaths/ deleteRowsAtIndexPathse / o chiamare reloadDataper forzare un aggiornamento.

Risposto il 17/03/2009 a 17:24
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more