Мне нужно измерить ширину пикселя строки в Cocoa Touch. Может ли кто-нибудь указать мне ссылку, которая объясняет, как это сделать?
Измерение ширины пикселя строки
Ответ 1
В iPhone OS это немного отличается, вместо этого посмотрите NSString UIKit Adddition Reference. Идея такая же, как в 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
в качестве аргумента для отдельных строк текста может сбивать с толку, но это связано с тем, что разрыв строки также используется для определения того, как обрезать текст.
Ответ 2
Взгляните на Справочник дополнений к набору приложений NSString, в частности boundingRectWithSize:options:attributes:
. Значение, возвращаемое этой процедурой, должно указывать ширину вашего NSString
.
Ответ 3
Вышеупомянутое решение теперь устарело. Проверьте это для iOS 7 +
sizeWithFont:constrainedToSize:lineBreakMode
теперь устарел. Используйте ниже фрагмент кода,
UIFont *font=[UIFont fontWithName:@"Arial" size:16.f];
NSString *name = @"APPLE";
CGSize size = [name sizeWithAttributes:@{NSFontAttributeName:font}];