Immaginate un UILabel, che è largo 200 pixel e alto 50 pixel. L'etichetta contiene del testo all'interno e l'etichetta riduce il testo in modo che si adatti all'etichetta. Ma ora, come otterresti la dimensione di quell'UIFont come è visibile nell'etichetta? Immaginiamo che la dimensione del font sia stata data con 100 enormi, e che l'etichetta la comprima fino a 15. E poi, vuoi fare altre etichette con poco testo, che ha la stessa dimensione del font. C'è un modo per ottenere la dimensione del font di UIFont dopo essere stato schiacciato dall'etichetta?Come calcolare la dimensione di un UIFont quando il testo nell'etichetta è vincolato per adattarsi alla larghezza?
6
A
risposta
15
Se si passa la dimensione del UILabel e la breakMode, ecc per:
CGSize size = [label.text sizeWithFont:label.font minFontSize:10 actualFontSize:&actualFontSize forWidth:200 lineBreakMode:UILineBreakModeTailTruncation];
actualFontSize dovrebbe essere quello che stai cercando.
UPDATE:
Quanto sopra è stato sconsigliato. Il metodo da utilizzare ora è:
- (CGRect)textRectForBounds:(CGRect)bounds
limitedToNumberOfLines:(NSInteger)numberOfLines
Ecco un esempio
CGSize size = [label textRectForBounds:label.bounds
limitedToNumberOfLines:1].size;
Problemi correlati
- 1. Calcolare la larghezza del testo prima di disegnare il testo
- 2. Android star rating come adattarsi alla larghezza
- 3. Come calcolare la larghezza di una stringa di testo di un font e una dimensione font specifici?
- 4. Swift - Regolazione fontSize per adattarsi alla larghezza del layout (programmaticamente)
- 5. Come inserire testo per adattarsi alla finestra in XSLT
- 6. gridster, come adattarsi automaticamente alla modifica della dimensione del browser?
- 7. Come regolare la dimensione del carattere per adattarlo all'altezza e alla larghezza di UILabel
- 8. Ridimensionamento di UIImageView per adattarsi alla larghezza dello schermo
- 9. Modifica solo la dimensione di un UIFont su un UIButton
- 10. Come calcolare la dimensione di un pezzo di testo in Win2D
- 11. Autoresize UICollectionView height per adattarsi alla sua dimensione del contenuto
- 12. Catextlayer modifica la dimensione di FONT per adattarsi al frame
- 13. Ridimensiona la larghezza del sito per adattarsi alla larghezza dello schermo dell'iPad
- 14. Ridimensionare automaticamente la larghezza di DataGridCoulmn/AdvancedDataGridColumn per adattarsi contenuti
- 15. Come regolare la dimensione del testo del testo in un UIButton per adattarlo alla larghezza in modo programmatico in Swift?
- 16. Rompere NSString in linee (per adattarsi alla larghezza desiderata)
- 17. CSS: Ridimensionamento automatico div per adattarsi alla larghezza del contenitore
- 18. WPF/Silverlight XAML Dimensione del testo per adattarsi al contenitore?
- 19. Come calcolare la larghezza di un elemento HTML di input in modo che corrisponda alla dimensione del suo contenuto?
- 20. Come calcolare la larghezza del carattere?
- 21. Cambia automaticamente la dimensione del carattere per adattarsi al pulsante in rapido
- 22. È possibile ridimensionare il testo per adattarlo a un div di dimensione fissa?
- 23. WPF Label adattarsi FontSize alla sua larghezza e l'altezza
- 24. La dimensione del carattere * è uguale alla dimensione di int *?
- 25. Ridimensionamento della dimensione del carattere per adattarsi verticalmente in UILabel
- 26. Modo corretto per calcolare l'altezza e la larghezza di un testo SVG
- 27. Come capire la dimensione del font di un UILabel quando -adjustsFontSizeToFitWidth è impostato su YES?
- 28. scoprire se il testo di JLabel supera la dimensione dell'etichetta
- 29. come calcolare "Dimensione" di FormattedText o GlyphRun in wpf?
- 30. Come adattarsi automaticamente alla tabella e allineando la tabella al centro, in base alla dimensione del documento Word Apache-POI?
Quindi actualFontSize sarebbe una CGSize che passo con riferimento a tale metodo? –
Sì. In C e Obj C, una funzione è limitata nel modo in cui può restituire valori. Gli argomenti passati a una funzione vengono valutati e il loro valore viene inserito nello stack, prima che venga chiamata la funzione. La funzione ottiene solo quei valori e non può trasmettere un valore di ritorno in essi. A meno che ciò che viene premuto non sia un puntatore, nel qual caso la funzione può usare il puntatore per scrivere sul suo indirizzo e modificarlo. Sto semplificando eccessivamente - qui actualFontSize è uno dei valori restituiti della funzione (metodo). – mahboudz
Questo è obsoleto in iOS7. C'è una sostituzione iOS8? –