Medir a largura de pixel de uma string
-
07-07-2019 - |
Pergunta
Eu preciso para medir a largura de pixel de uma corda em Cocoa Touch. Pode apontar alguém me a um link que explica como fazer isso?
Solução
No iPhone OS é um pouco diferente, em vez olhar para o NSString UIKit adições Referência . A ideia é a mesma que em Cocoa para Mac OS X, mas existem métodos mais.
Para linhas individuais de utilização de texto:
- (CGSize)sizeWithFont:(UIFont *)font
forWidth:(CGFloat)width
lineBreakMode:(UILineBreakMode)lineBreakMode
E para textos de várias linhas usar:
- (CGSize)sizeWithFont:(UIFont *)font
constrainedToSize:(CGSize)size
lineBreakMode:(UILineBreakMode)lineBreakMode
O uso de um UILineBreakMode
como argumento para linhas de texto pode ser confuso, mas isso é porque a quebra de linha também é usado para definir como para truncar o texto.
Outras dicas
Dê uma olhada no NSString Kit Aplicação Adições Referência , especificamente boundingRectWithSize:options:attributes:
. O valor retornado por essa rotina deve dar-lhe a largura do seu NSString
.
A solução acima é agora obsoleta. Verifique isso para iOS 7 +
sizeWithFont:constrainedToSize:lineBreakMode
é obsoleto agora. Use abaixo trecho de código,
UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];
NSString *name = @"APPLE";
CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];