Mam widok, który zawiera pola tekstowe od górnej części ekranu do dolnej części ekranu. Oczywiście, dolne pola tekstowe zostają zakryte przez klawiaturę, gdy się pojawiają, więc postanowiłem pozbyć się tego problemu.ScrollRectToVisible nie działa zgodnie z przeznaczeniem
zarejestrować powiadomień w metodzie viewDidLoad
, wtedy gdy UIKeyboardDidShowNotification
wysyłana jest ta metoda nazywa się:
- (void)keyboardWasShown:(NSNotification*)aNotification
{
NSDictionary* info = [aNotification userInfo];
CGSize kbSize = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
UIEdgeInsets contentInsets = UIEdgeInsetsMake(0.0, 0.0, kbSize.height, 0.0);
scrollView.contentInset = contentInsets;
scrollView.scrollIndicatorInsets = contentInsets;
[scrollView scrollRectToVisible:activeField.frame animated:YES];
}
Problemem jest przewijany nic nie wychodzi w ogóle, nie mówiąc już przewijane na widoczne. Czego tu mi brakuje?
Wszystkie moje pola tekstowe są wewnątrz widoku przewijania, itp
Dzięki z góry.
Ustaw rozmiar treści, upewniając się, że ani szerokość, ani wysokość nie są zerowe. Następnie dodaj lub odejmij od contentInform height, dopóki nie zadziała. scrollView.contentSize = CGSizeMake (kbSize.width, kbSize.height); scrollView.contentInset = UIEdgeInsetsMake (0, 0, kbSize.height - 250, 0); // (góra, lewo, dół, prawo) –