2015-02-18 2 views
1

Добавляем изображение в объект NSAttributedString, чтобы я мог правильно отображать их в UITextView. До сих пор он отлично работает. Проблема только в том, что размер моего шрифта равен 25, чтобы соответствовать размеру моего изображения, но каждый раз, когда я добавляю изображение в UITextView, шрифт сбрасывается до меньшего размера. Мне нужно сохранить шрифт в 25, чтобы соответствовать текстам с размером изображения.Размер шрифта сбрасывается в NSAttributedString

NSAttributedString имеет 3 конструкции, которые принимают string, attributedString и string:attributes:.

Поскольку я не использую строку, я не могу установить атрибуты с помощью третьего конструктора, а первые 2 не позволят мне устанавливать атрибуты (UIFont). Поэтому я решил установить размер шрифта от Interface Builder и сбрасывать его каждый раз, когда я добавляю изображение в `UITextField.

У меня проблема, потому что каждый раз, когда я возвращаю шрифт, UITextView прокручивается до первой строки (при условии, что там столько текста, оно прокручивается). Как установить размер шрифта после добавления изображения без автоматического прокрутки UITextView? Еще лучше, есть ли лучший способ сделать это? Благодарю.

+0

Не могли бы вы показать свой код? Если я хорошо помню, если вы выполняете '[yourTextView setAttributedText: newAttributedString];' он может автоматически прокручиваться, поэтому вам нужно прокрутить вниз (можно найти несколько вопросов по сети). – Larme

+0

На самом деле, я не использую 'textView.setAttributedString()'. Я использую 'textView.textStorage.insertAttributedString (attribitedString: atIndex:)'. Кроме того, я использую это только для вставки изображений в 'UITextView'. Итак, изображение, текст, затем другое изображение и т. Д. –

ответ

0

Строка NSMutableAttributed содержит некоторые методы, которые вы можете попробовать, включая атрибуты настройки для диапазонов после создания строки атрибута.

+0

Спасибо @Jeremy Pope. Я попробовал, но он не совсем работает. Я не уверен, что это проблема с диапазоном или его просто не собирать. Это то, что я сделал: 'let selrange = MessageTxt.selectedTextRange; let selstart = selrange ?.start; let selend = selrange? .end; let loc = MessageTxt.offsetFromPosition (MessageTxt.beginningOfDocument, toPosition: selrange! .start); let len ​​= MessageTxt.offsetFromPosition (selstart !, toPosition: selend!); let rang = NSMakeRange (loc, len); mutable.setAttributes (font, range: rang); ' –

Смежные вопросы