Как изменить размер UITextView, который автоматически изменяет его ширину и высоту на основе содержимого и фиксированной ширины, когда достигает определенного значения? - PullRequest
0 голосов
/ 16 марта 2019

Я пытался создать UITextView для автоматического изменения размера со следующим кодом:

func textViewDidChange(_ textView: UITextView) {
     let fixedWidth = textView.frame.size.width
     let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
     textView.frame.size = CGSize(width: max(newSize.width, fixedWidth), height: newSize.height)

}

Когда я набираю первый символ, он не изменяет ширину символа.Другое решение, которое я попробовал, состоит в следующем.

 func textViewDidChange(_ textView: UITextView) {
     let fixedWidth = textView.frame.size.width
     let newSize = textView.sizeThatFits(CGSize(width: fixedWidth, height: CGFloat.greatestFiniteMagnitude))
     textView.frame.size = CGSize(width: newSize.width, height: newSize.height)

}

Это ширина, прикрепленная к первому символу, только один символ в строке с этим решением.Как я могу решить это?

1 Ответ

0 голосов
/ 16 марта 2019

Попробуйте:

    let maximumWidth: CGFloat = 200 // Change as appropriate for your use.
    let newSize = textView.sizeThatFits(CGSize(width: maximumWidth, height: CGFloat.greatestFiniteMagnitude))
    textView.frame.size = CGSize(width: newSize.width, height: newSize.height)

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

Это расширит UITextView по горизонтали до 200 точек, а затем начать расширение по вертикали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...