Domanda

Devo misurare la larghezza dei pixel di una stringa in Cocoa Touch. Qualcuno può indicarmi un link che spiega come farlo?

È stato utile?

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}];
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top