#iphone #objective-c #ios
#iPhone #objective-c #iOS
Вопрос:
У меня возникли небольшие проблемы с sizeWithFont, в частности, с режимом прерывания строки.
CGSize maxSize = CGSizeMake(30, 999);
UIFont *font = [UIFont fontWithName:@"TrebuchetMS" size:10.0f];
CGSize size = [@"hello" sizeWithFont: font constrainedToSize:maxSize lineBreakMode:UILineBreakModeClip];
С помощью этого кода размер возвращается с шириной 23 и высотой 13, что является правильным, однако, если я уменьшу максимальный размер до (10, 999), возвращаемый размер будет иметь ширину 9 и высоту 39, как если бы текст был перенесен на несколько строк. Разве UILineBreakModeClip не должен приводить к тому, что высота остается такой же, какой она была изначально (при этом остальная часть строки просто обрезается), или я немного не так понимаю это?
Ответ №1:
sizeWithFont:constrainedToSize:lineBreakMode: предназначен для вычисления нескольких строк текста, поэтому он разбивает текст на несколько строк, чтобы попытаться уместить его в пределах заданной ширины. Вместо этого попробуйте sizeWithFont:forWidth:lineBreakMode: который предназначен для обработки одной строки текста.
Смотрите ссылку на дополнения UIKit NSString для получения дополнительной информации.