Как настроить высоту текстового просмотра под его содержимое в SWIFT?
В моем контроллере представления у меня есть UITextView. Это текстовое представление заполнено строкой. Строка может быть короткой или длинной. В зависимости от длины строки, высота просмотра текста должна быть отрегулирована. Я использую раскадровки и автоматическую разметку.
У меня есть некоторые проблемы с высотой просмотра текста.
Иногда высота отлично подгоняется под текст. Иногда нет, текст обрезается в первой строке. Ниже текстовое представление желтого цвета. синий - это вид контейнера внутри прокрутки. Фиолетовый - это место для картины.
Тексты из моей основной базы данных, это строковые атрибуты. Между экраном 1 и 2 изменилась только строка.
Если я печатаю строки в консоли, у меня есть правильные тексты:
my amazing new title
Another funny title for demo
Ограничения моего текстового обзора:
Я не понимаю, почему у меня есть 2 разных дисплея.
РЕДАКТИРОВАТЬ
Я попробовал совет @Nate, в viewDidLoad я добавил:
myTextViewTitle.text="my amazing new title"
myTextViewTitle.setContentHuggingPriority(1000, forAxis: UILayoutConstraintAxis.Vertical)
myTextViewTitle.setContentCompressionResistancePriority(1000, forAxis: UILayoutConstraintAxis.Vertical)
myTextViewTitle.setTranslatesAutoresizingMaskIntoConstraints(false)
let views = ["new_view": myTextViewTitle]
var constrs = NSLayoutConstraint.constraintsWithVisualFormat("|-8-[new_view]-8-|", options: NSLayoutFormatOptions(0), metrics: nil, views: views)
self.view.addConstraints(constrs)
self.view.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-8-[new_view]", options: NSLayoutFormatOptions(0), metrics: nil, views: views))
self.myTextViewTitle.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:[new_view(220@300)]", options: NSLayoutFormatOptions(0), metrics: nil, views: views))
Нет результатов. С или без ограничения высоты, добавленного для моего textview в конструкторе интерфейса ...
РЕДАКТИРОВАТЬ 2
Мне нужен UITextView, а не UIlabel, из-за кнопки назад, чтобы использовать путь исключения.
let exclusionPathBack:UIBezierPath = UIBezierPath(rect: CGRect(x:backButton.bounds.origin.x, y:backButton.bounds.origin.y, width:backButton.bounds.width+10, height:backButton.bounds.height))
myTextViewTitle.textContainer.exclusionPaths=[exclusionPathBack]