Piszę od zera rozwijając UITextView
w mojej aplikacji swift
. kładę textView
na view
tak:dziwne pozycjonowanie kursora w UITextView
jest tuż nad klawiaturą.
textView
ma ograniczeń dołączone do view
: leading
, bottom
, top
i trailing
wszystkie równa się = 4
.
view
ma następujące ograniczenia:
trailing
, leading
, bottom
, top
i height
Height
jest wylot w moim kodu. Sprawdzam ile linie są w textView
i na tej podstawie mam modyfikując 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
}
}
Liczba linii wyżej wyliczonych w tym rozszerzeniu:
extension UITextView{
func numberOfLines() -> Int{
if let fontUnwrapped = self.font{
return Int(self.contentSize.height/fontUnwrapped.lineHeight)
}
return 0
}
}
początkowej wysokości textView
to 38
. Początkowy rozmiar czcionki w textView
to 15
.
Teraz działa dobrze, gdy użytkownik zaczyna pisać nową linię, ale textView
nie jest ustawiony w pełnym zakresie widoku. Mam na myśli fakt, że wygląda to tak:
i powinno to wyglądać tak:
Dlaczego jest to dodatkowe spacje są dodawane i jak można Pozbywam się tego?
Obecnie, gdy pojawia się nowa linia, pojawia się biała przestrzeń, ale kiedy użytkownik przewinie numer textView
, aby wyśrodkować tekst i pozbyć się białej przestrzeni - zniknie na zawsze, użytkownik nie będzie mógł go ponownie przewinąć, więc biała linia jest tu. Dla mnie wygląda to na problem z odświeżaniem treści, ale może wiesz lepiej - czy możesz podać mi jakieś wskazówki?
nie wiem dokładnie, zmieniając Domyślam ** ScrollingEnabled NO ** może pracować .. – Gokul
hmm @Gokul może to pomóc, ale muszę 'scrollingEnabled' do' true' ponieważ jeśli istnieje więcej niż 4 wiersze tekstu, a "textView" nie rośnie i użytkownik może przewijać zawartość w nim ... – user3766930
czy zbudowałeś aplikację do czatowania? –