Swift - повернутая UITextView проблема автоматического изменения размера - PullRequest
0 голосов
/ 22 декабря 2018

Я использую эту функцию, чтобы UITextView автоматически подгонял текстовое содержимое при наборе текста.Он отлично работает, когда TextView находится в горизонтальном положении, но не работает правильно, когда TextView вращается.Есть идеи как это можно исправить?

func textViewDidChange(_ textView: UITextView) {

    let newSize = textView.sizeThatFits(CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude))
    textView.frame = CGRect(origin: textView.frame.origin, size: newSize)

}

Ответы [ 2 ]

0 голосов
/ 24 декабря 2018

Я видел, что UITextView иногда плохо работает с преобразованиями.Оберните ваш UITextView в UIView.Установите верхний, ведущий, нижний и конечный компоненты UITextView в UIView.Выполните все преобразования в UIView.Вам должно быть хорошо идти.

0 голосов
/ 22 декабря 2018

В соответствии с документами :

Если значение этого свойства отличается от преобразования идентификатора, значение в свойстве frame не определено и должно бытьигнорируется.

Я думаю, именно поэтому ваш код не работает - frame не определен после применения преобразования.

Попробуйте установить преобразование обратно в тождество доустановка рамки:

let transform = textView.transform
textView.transform = .identity
let newSize = textView.sizeThatFits(CGSize(width: CGFloat.greatestFiniteMagnitude, height: CGFloat.greatestFiniteMagnitude))
textView.frame = CGRect(origin: textView.frame.origin, size: newSize)
textView.transform = transform
...