Como ajustar a altura de uma visualização de texto ao seu conteúdo no SWIFT?
No meu controlador de exibição, eu tenho um UITextView. Essa visualização de texto é preenchida com uma string. A cadeia pode ser curta ou longa. Dependendo do comprimento da string, a altura da visualização de texto deve ser ajustada. Eu uso storyboards e layout automático.
Eu tenho alguns problemas com a altura da visualização de texto.
Às vezes, a altura é perfeitamente ajustada ao texto. Às vezes, não, o texto é cortado na primeira linha. Abaixo, a visualização de texto é amarela. o azul é uma visualização de contêiner dentro de uma exibição de rolagem. Roxo é o lugar para uma foto.
Os textos são da minha base de dados principal, são atributos de sequência. Entre as telas 1 e 2, a única coisa alterada é a sequência.
Se eu imprimir as strings no console, tenho os textos corretos:
my amazing new title
Another funny title for demo
As restrições do meu texto:
Não entendo por que tenho 2 telas diferentes.
EDITAR
Eu tentei o conselho @Nate, em viewDidLoad, adicionei:
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))
Sem resultados. Com ou sem altura contraint adicionada ao meu textview no construtor de interfaces ...
EDIT 2
Eu preciso de um UITextView e não de um UIlabel, por causa do botão Voltar, para usar um caminho de exclusão.
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]