Мне нужно переместить текст, который пользователь ввел в большую многострочную UITextView
, в меньшую (но все же многострочную) UITextView
*. Если пользователь ввел больше текста, чем будет отображаться в меньшем виде, я хочу обрезать текст так, чтобы он соответствовал всему видимому (усеченному) тексту. (Ни большой UITextView
, ни меньший не должны прокручиваться.)
Какой лучший способ сделать это?
Я могу использовать цикл, каждый раз сокращая строку на символ, а затем использовать NSString
sizeWithFont: constrainedToSize: lineBreakMode:
, чтобы узнать высоту, которая понадобится этой более короткой строке, а затем сравнить ее с высотой, имеющейся у меня в моем меньшем UITextView
, заканчивающем цикл, когда строка будет соответствовать - но это кажется медленным и неловким. Должен быть лучший способ.
Я хотел бы просто сказать адресату UITextView
обрезать его элемент displayText, поскольку он отображает его на экране, но я не смог найти способ сделать это.
* Более подробно об этом, из комментария, который я сделал ниже:
У меня есть приложение для ландшафта. Я изменяю расположение вида в зависимости от фотографии, которую выбирает пользователь. Если это пейзажная фотография, заголовок меньше - просто линия внизу фотографии. Если она выберет портретную фотографию, тогда у меня будет достаточно места для подписи сбоку фотографии, поэтому она будет больше.
Если пользователь меняет ориентацию своей фотографии с книжной на альбомную, то я хочу обрезать текст, а затем разрешить ему редактировать его, чтобы он имел смысл. Я мог бы просто убрать это, но я предпочел бы сохранить это, чтобы минимизировать ее печатание.