Misurare la larghezza dei pixel di una stringa
-
07-07-2019 - |
Domanda
Devo misurare la larghezza dei pixel di una stringa in Cocoa Touch. Qualcuno può indicarmi un link che spiega come farlo?
Soluzione
Su iPhone OS è leggermente diverso, invece guarda NSString UIKit Additions Reference . L'idea è la stessa di Cocoa per Mac OS X, ma ci sono più metodi.
Per le singole righe di testo utilizzare:
- (CGSize)sizeWithFont:(UIFont *)font
forWidth:(CGFloat)width
lineBreakMode:(UILineBreakMode)lineBreakMode
E per i testi multilinea usare:
- (CGSize)sizeWithFont:(UIFont *)font
constrainedToSize:(CGSize)size
lineBreakMode:(UILineBreakMode)lineBreakMode
L'uso di un UILineBreakMode
come argomento per singole righe di testo può essere fonte di confusione, ma questo perché l'interruzione di riga viene anche utilizzata per definire come troncare il testo.
Altri suggerimenti
Dai un'occhiata a Riferimento aggiunte al kit di applicazioni NSString , in particolare boundingRectWithSize: opzioni: attributi:
. Il valore restituito da quella routine dovrebbe darti la larghezza del tuo NSString
.
La soluzione sopra è ora obsoleta. Controlla questo per iOS 7+
sizeWithFont:constrainedToSize:lineBreakMode
è obsoleto ora. Utilizza lo snippet di codice seguente,
UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];
NSString *name = @"APPLE";
CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];