Вопрос

Мне нужно измерить ширину строки в Cocoa Touch. Может кто-нибудь указать мне ссылку, которая объясняет, как это сделать?

Это было полезно?

Решение

В iPhone OS это немного отличается, вместо этого посмотрите на Справочник по NSString UIKit . Идея та же, что и в Cocoa для Mac OS X, но есть и другие методы.

Для отдельных строк текста используйте:

- (CGSize)sizeWithFont:(UIFont *)font 
              forWidth:(CGFloat)width 
         lineBreakMode:(UILineBreakMode)lineBreakMode

А для многострочных текстов используйте:

- (CGSize)sizeWithFont:(UIFont *)font 
     constrainedToSize:(CGSize)size 
         lineBreakMode:(UILineBreakMode)lineBreakMode

Использование UILineBreakMode в качестве аргумента для отдельных строк текста может сбивать с толку, но это потому, что разрыв строки также используется для определения способа усечения текста.

Другие советы

Посмотрите на Справочник по дополнениям NSString Application Kit , в частности boundingRectWithSize: параметры: атрибуты: . Значение, возвращаемое этой подпрограммой, должно дать вам ширину вашего NSString .

Вышеуказанное решение устарело. Проверьте это для iOS 7 +

 sizeWithFont:constrainedToSize:lineBreakMode 

устарела. Используйте приведенный ниже фрагмент кода,

UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];

NSString *name = @"APPLE";

CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top