Письмо с нуля растет UITextView
в моем swift
приложении. я поставил textView
на view
, как это:странное позиционирование курсора в UITextView
это прямо над клавиатурой.
textView
имеет ограничения, прикрепленные к view
: leading
, bottom
, top
и trailing
, все равны = 4
.
view
имеет следующие ограничения:
trailing
, leading
, bottom
, top
и height
Height
это отдушина в моем коде. Я проверяю, сколько строк находятся в textView
и на основе этого я модифицирования height
:
func textViewDidChange(textView: UITextView) { //Handle the text changes here
switch(textView.numberOfLines()) {
case 1:
heightConstraint.constant = 38
break
case 2:
heightConstraint.constant = 50
break
case 3:
heightConstraint.constant = 70
break
case 4:
heightConstraint.constant = 90
break
default:
heightConstraint.constant = 90
break
}
}
Количество строк выше вычисленных этим расширением:
extension UITextView{
func numberOfLines() -> Int{
if let fontUnwrapped = self.font{
return Int(self.contentSize.height/fontUnwrapped.lineHeight)
}
return 0
}
}
Начальная высота textView
является 38
. Исходный размер шрифта в textView
: 15
.
Теперь он работает хорошо, когда пользователь начинает вводить новую строку, но textView
не задан в пределах полной границы вида. Я имею в виду, что тот факт, что это выглядит следующим образом:
и он должен выглядеть следующим образом:
Почему этот дополнительный пробел добавляется, и как можно Я избавлюсь от этого?
В настоящее время, когда появляется новая строка, это пробел, но когда пользователь прокручивает textView
, чтобы центрировать текст и избавиться от пробела - он ушел навсегда, пользователь не может прокручивать его снова, так что белая линия здесь. Так что для меня это выглядит как проблема с освежающим контентом, но, может быть, вы знаете лучше - можете ли вы дать мне несколько советов?
я не знаю точно, по моей догадке меняющегося ** не ScrollingEnabled к NO ** может работать .. – Gokul
хммы @Gokul может быть, это поможет, но мне нужен '' scrollingEnabled' к true', потому что если есть более 4 строк текста, тогда 'textView' больше не растет, и пользователь может прокручивать содержимое внутри него ... – user3766930
Вы создали приложение для чата? –