Cześć,
jak doskonale większość z nas wie, możemy nasłuchiwać powiadomień (NSNotification) i otrzymać wiadomość kiedy zostanie wyświetlona/schowana klawiatura, bądź otrzymywać z delegate naszych pól tekstowych analogiczne metody i zareagować na to w odpowiedni sposób, albo zmieniając rozmiar widoku, albo przemieszczając określone pola wyżej, jeżeli jest to konieczne.
Jednak, zastanawiam się, czy ktoś widział, zrobił, a może jestem ślepy i jest ona pod ręką, ale z dokumentacji jakoś tego nie mogłem wyczytać, gotową implementację kontrolera widoku, która automatycznie zmniejszy rozmiar widoku (self.view), tak aby nic nie wyświetlało się pod klawiaturą?
Jeżeli widok zostanie zmniejszony, to jakikolwiek podwidok, który zostanie na niego nałożony i będzie miał ustawiony na sztywno trzymanie się dolnej krawędzi, powinien wtedy być widoczny na dole ekranu, a jak klawiatura się pojawi podskoczy do góry, i będzie w takiej samej odległości od krawędzi klawiatury, jak był wtedy od krawędzi ekranu.
Mogłoby się wydawać, że tego typu implementacja jest bardzo prosta, ale jeżeli bliżej usiądziemy do problemu, zobaczymy wiele innych zgrzytów, które mogą wystąpić, np:
- autorotacja interfejsu - inny rozmiar klawiatury dla landscape/portrait
- różne urządzenia - iPhone/iPad
- różne dolne belki - np. TabBar i już mamy inne rozmiary.
Chodzi mi o dokładnie takie samo zachowanie, jakie ma w sobie UITableViewController - jeżeli w komórce (albo w headerze/footerze) znajdzie się pole tekstowe, automatycznie tabela jest zmniejsza wraz z pojawianiem się klawiatury. I dzieje się to idealnie, jeżeli na dole jest TabBar, zmniejszanie tabeli rozpoczyna się po jakimś 0.1s - dopóki jak klawiatura wysunęła się już ponad TabBar.
Analogicznie takie samo zachowanie wprowadza UIWebView.
W przypadku powyższych oba widoku mają pasek przewijania, ale jest to nie istotne. Chciałbym, aby zwykły UIView w kontolerze widoku został tak samo zmniejszony jak tabela, czy www w powyższych przykładach, a jeżeli będę chciał mieć skrolla to go umieszcze na widoku.
Pozdrawiam
Krzysztof




LinkBack URL
About LinkBacks

