Ho un UILabel le cui dimensioni sono calcolate con il metodo sizeWithFont:
. La modalità interruzione linea è impostata su UILineBreakModeWordWrap
(lo stesso flag viene utilizzato per calcolare la dimensione con sizeWithFont:
) ...Linee risultanti di UILabel con UILineBreakModeWordWrap
Tutto funziona alla grande, l'etichetta è correttamente dimensionata e visualizza il mio testo come richiesto.
Ora ho bisogno di conoscere le linee utilizzate per visualizzare l'etichetta (o le linee che vengono generate quando viene utilizzato sizeWithFont:
). Potrei tecnicamente scrivere la mia implementazione dell'interruzione di riga in base agli spazi/ritorni a capo, ma non sarà garantita allo stesso modo dell'implementazione di Apple e quindi le linee risultanti non saranno quelle che vengono utilizzate per calcolare la dimensione del testo , non importa il fatto di reinventare la ruota.
Idealmente, vorrei passare la mia stringa, specificare la larghezza e la modalità di interruzione di riga e ricevere una serie di stringhe che rappresentano le linee visive del testo.
Qualche idea su come farlo accadere nel modo più elegante?
Grazie TomSwift per il vostro contributo ... Questa sorta di opere per alcuni casi, ma sicuramente mi ha dato una grande spinta, sto lavorando su una soluzione a prova di proiettile di più in base al codice di . Grazie ancora! – Nick
Quali casi lo hanno rotto? – TomSwift
Bella soluzione TomSwift. Ma non funziona per me, è sempre il testo su una riga, anche se int conteggio a volte sono 9, 10 o 20. Il mio codice: \t self.labelDescription.text = event.description; \t self.labelDescription.lineBreakMode = UILineBreakModeWordWrap; \t self.labelDescription.font = [UIFont fontWithName: @ dimensione "Helvetica": 13.0]; \t \t NSArray * lines = [self.labelDescription lines]; \t \t conteggio int = [numero di righe]; \t self.labelDescription.numberOfLines = count; –