Mam widok tabeli z komórkami statycznymi. Jedna komórka zawiera numer UITextView
, a numer heightForRowAtIndexPath:
jest obliczany dynamicznie, dzięki czemu komórka jest zawsze wystarczająco wysoka, aby pomieścić tekst (część zajęła się w rzeczywistości w systemie iOS 7, ponieważ nie można już po prostu zapytać o tekstView dla jego contentSize
).UITableView w iOS 7 nie przewija do poprawnej lokalizacji podczas edycji UITextView w komórce
Gdy stukam w widoku tekstowym, aby rozpocząć edycję, klawiatura animuje się na miejscu, zawartośćInIndele na tableView są automatycznie dostosowywane do tego celu (tj. Dolna wstawka 216px dla orientacji pionowej iPhone'a), kursor/suwak staje się widoczny, a następnie widok tabeli przewija się do innej lokalizacji. To kończy się wyglądać jak odbicie.
Oto film o tym w symulatorze: https://www.dropbox.com/s/htdbb0t7985u6n4/textview-bounce.mov
Zauważ, że na drugi daszek jest tuż nad klawiaturą. Logowałem widok tabeli contentOffset
i widzę, że przewija on ładną wartość, a następnie nagle "odwraca się" i przewija do tyłu.
Co dziwne, jeśli włączę wolne animacje w symulatorze, problem znika; odwrócenie contentOffset
się nie dzieje i wszystko działa zgodnie z oczekiwaniami (tj. zachowanie iOS 6).
Oto wideo z wolnymi animacji: https://www.dropbox.com/s/nhn7vspx86t4exb/textview-nobounce.mov
notatki realizacji:
- Widok tekst jest różowy i ma ograniczeń autoLayout że Keep it przypięte do celi w odległości 0 (z wyjątkiem lewej strony, która to 10pt)
- Używam
boundingRectWithSize:
do obliczenia wysokości widoku tabeli, dostosowując do liniiFragmentPadding i wszelkich wstawek z góry/z dołu. Wydaje się działać. - mam ustawić TextView nie być przewijane, ale nie zauważył niczego innego, gdy
scrollEnabled
== TAK - Jest to kontroler widoku tabeli i
automaticallyAdjustsScrollViewInsets
== TAK
Mam dokładnie taki sam problem, mam śledzone go do contentSize z zerują UITableView po Robię beginupdates UITableView i endupdates – perrohunter