Измерение ширины в пикселях строки
-
07-07-2019 - |
Вопрос
Мне нужно измерить ширину строки в 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}];