So che c'è questa:Come calcolare l'altezza del rettangolo di testo da una NSString?
sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
Ma poiché la CGSize ha sempre la stessa altezza e non si adatta a qualsiasi shrinked testo o di sorta, il CGSize non dice come altezza del testo è.
Esempio: crea un UILabel con 320 x 55 punti e inserisci un testo loooooooooooooong. Lascia che l'etichetta riduca il testo verso il basso. Sorpresa: CGSize.height rimane alla stessa altezza anche se il testo è così piccolo che è necessario un microscopio.
Ok, quindi dopo aver sbattuto la testa contro il mio macbook pro che è a metà rotta ora, l'unico pensiero che può aiutare è quella brutta dimensione effettiva. Ma la dimensione del carattere è in pica, penso, non è proprio quello che si ottiene sullo schermo, non è vero?
Quando la dimensione del font è 10, il mio testo è veramente alto di 10 punti al massimo? Una volta ogni tanto ho provato esattamente questo, e non appena il testo aveva una y o un carattere che si estende al di sotto (come quella coda di un y), è fuori limite e l'intero testo è più grande di 10 punti.
Quindi, come si calcola l'altezza del testo reale per un singolo codice Uilabel senza ottenere una lunga barba e qualche esperienza ospedaliera?
Questo funziona. Non è la cosa più efficiente sulla terra ma, finché la mela non risolve il bug (non trattenere il respiro), funziona. – DougW