2009-12-11 13 views
15

Sto cercando di capire come replicare lo stile UITableViewCellStyleValue2 in modo che il testo di dettaglio possa essere costituito da più linee, come mostrato nelle celle "indirizzo" nell'app Contatti. Come l'app Contatti, alcuni campi (come il nome della via) sono facoltativi; quindi mostrerebbe dire 3 righe invece di 4, se la strada non fosse nulla.UITableViewCell multilinea con UITableViewCellStyleValue2 style

Mi manca un trucco o devo creare una cella personalizzata in IB? Come garantire la line-up delle etichette testuali e di testo con altre celle UITableViewCellStyleValue2?

Grazie per eventuali suggerimenti.

risposta

1

Mi sembra che tu debba creare un UITableCell personalizzato. L'unico modo per assicurarsi che il testo si allinei è quello di ottenere i valori di larghezza del margine/del testo corretti, il che può essere fatto per tentativi ed errori o usando uno strumento di misurazione come xScope.

0

Ho anche avuto il problema che il textLabel e il detailTextLabel avevano una posizione diversa. Soluzione: per la detailTextLabel utilizzare la stessa altezza come textLabel (ad esempio 13)

1

Creare una cella personalizzata per la tabella e posizionare un UILabel e una UITextView al suo interno. Posizionare la vista di testo etichetta & per far corrispondere le loro posizioni x, y con le altre celle che si stanno utilizzando in quella tabella. Inserisci "\ n" nel testo della textview dove vuoi che si verifichino interruzioni di riga. Si ridimensiona l'altezza TextView a seconda del numero di righe nel TextView utilizzando qualcosa di simile:

CGRect frame = yourTextView.frame; frame.size.height = yourTextView.contentSize.height; yourTextView.frame = frame; return frame.size.height + 20.0; // Pad the cell's height as necessary for your applicaion

+1

in genere, è difficile definire dove deve essere interrotta la linea. – Raptor

Problemi correlati