Domyślnie, jeśli pole tekstowe jest potomkiem przewijania i jest dotykane, gdy znajduje się częściowo poza ramką nadrzędnego przewijania, widok przewija się nieco w górę. Na przykład, powiedzmy, że mamy widok przewijania z wysokością ramki 200, ale wysokość contentSize równą 260, a my umieścimy pole tekstowe na pozycji 220. Teraz przewijam w górę i umieszczam pole tekstowe w połowie ramki przewijania i pozwalam druga połowa zostaje odcięta. Jeśli dotknę tego pola tekstowego, zauważysz, że widok przewijania automatycznie przewija się o kilka pikseli, zanim pojawi się klawiatura. Jest to problematyczne, ponieważ mam już własny kod przewijania, więc gdy to nastąpi, kończy się przewijanie dwa razy tak daleko, jak tego chcę. Czy istnieje sposób na usunięcie tego domyślnego zachowania?Jak zatrzymać automatyczne przewijanie UIScrollView po dotknięciu UITextField z ramki przewijania?
Q
Jak zatrzymać automatyczne przewijanie UIScrollView po dotknięciu UITextField z ramki przewijania?
5
A
Odpowiedz
1
Wygląda na to, że Twój scrollview jest przesuwany w odpowiedzi na klawiaturę zamiast pola tekstowego. Spójrz na Apple's Managing the Keyboard documentation; zawiera przydatną sekcję dotyczącą przewijania.
0
Podobne pytanie już zostało tutaj odpowiedział: https://stackoverflow.com/a/5673026/550177
Można także spróbować zresetować przez Scrollview za contentOffset gdy pole tekstowe staje się pierwszą odpowiedź. Implemement delegat pola tekstowego w ten sposób:
-(void)textFieldDidBeginEditing:(UITextField *)textField
{
[self.scrollView setContentOffset:_scrollView.contentOffset animated:NO];
}
Ten kod usuwa tę automatyczną animację po zaznaczeniu pola tekstowego. Testowałem z iOS 6.1 w symulatorze.
Powiązane problemy
- 1. UITextField ulega awarii po dotknięciu
- 2. WPF DataGrid: jak zatrzymać automatyczne przewijanie po kliknięciu komórki?
- 3. UIScrollView przeskakuje w dół po pierwszym dotknięciu
- 4. Jak zatrzymać automatyczne przewijanie kontrolki Memo?
- 5. Nie można dotknąć UITextField na UIScrollView
- 6. Emacs - przewijanie automatyczne po wstawieniu tekstu
- 7. Nieskończone przewijanie w poziomie UIScrollView
- 8. Jak zatrzymać przewijanie UITableView
- 9. Wyłącz poziomy przewijanie w UIScrollView z autolayout
- 10. Gładkie UITextView automatyczne przewijanie do dolnej krawędzi ramki
- 11. Automatyczne przewijanie pasków podczas przewijania w widoku listy
- 12. Synchronizacja przewijania UIScrollView
- 13. UIScrollView: Przewijanie nie działa
- 14. Wznów flexslider po dotknięciu/przesunięciu
- 15. iOS UIScrollView anuluj dotyk Uibutton na przewijanie
- 16. UIScrollView zatrzymuje NSTimer, aż przewijanie się zakończy
- 17. Automatyczne przewijanie do dołu DIV
- 18. Przechwytywanie gestów panoramy przez UIScrollView przerywa przewijanie
- 19. Blokady przewijania/przewijania po animacji z przewijaniem
- 20. Przewijanie aplikacji: UIPageViewController vs UIScrollView
- 21. Jak zatrzymać UIScrollView w określonym punkcie?
- 22. Przewijanie UIScrollView, aby wyświetlić najniższy z kilku pól tekstowych
- 23. Wykonywanie UIView Przewijanie bez UIScrollView
- 24. Przeciągnij obraz po dotknięciu
- 25. Czułość/szybkość przewijania UIScrollView z funkcją stronicowania
- 26. Jak wyłączyć tylko pionowe przewijanie w UIScrollView?
- 27. Jak zatrzymać rzutowanie UIScrollView w poziomie?
- 28. Jak programowo ustawić rozmiar ramki UIScrollView?
- 29. Jak zatrzymać automatyczne łamanie linii po szablonach w mediawiki?
- 30. płynne przewijanie automatyczne za pomocą javascript