Я не думаю, что есть простой, чистый и элегантный способ сделать это.Но если вы посмотрите на справку NSString UIKit , есть методы, которые могут помочь получить хорошее приближение.
В частности, посмотрите:
CGSize aSize =
[ myString sizeWithFont:(UIFont *)aFont
constrainedToSize:(CGSize ) aSize ];
ИспользованиеaРазмер с желаемой шириной и 2 * fontSize (для 2 строк) для желаемой высоты.Возьмите полученную ширину (aSize.width) и разделите на размер шрифта.Это должно приблизиться к тому месту, где ваша строка будет обрезана, если бы она поместилась в этом поле.
Теперь, к сожалению, вам нужно соотношение шрифтов (отношение размера точки к ширине), которое я не знаю, как получить.Я точно определил, что это между 4 и 6, но это все равно, что сказать, что число пи равно 3.
Во всяком случае, приблизительный индекс, где ваша строка усекается, будет
( fontRatio * aSize.width ) / fontSize;
Я написал небольшой проект симулятора, чтобы проверить различные комбинации ширины линии, соотношения шрифта, размера шрифта и т. Д., Которые вы можете использовать.Это здесь: Струнный тестовый проект