Avec le SDK iOS:
J'ai un UIViewavec des UITextFields qui font apparaître un clavier. J'en ai besoin pour pouvoir:
Permet de faire défiler le contenu du
UIScrollViewpour voir les autres champs de texte une fois le clavier levé"Saut" automatique (en faisant défiler vers le haut) ou raccourcissement
Je sais que j'ai besoin d'un UIScrollView. J'ai essayé de changer la classe de mon UIViewen UIScrollViewmais je ne parviens toujours pas à faire défiler les zones de texte vers le haut ou vers le bas.
Ai-je besoin à la fois d'un UIViewet d'un UIScrollView? Est-ce que l'un entre dans l'autre?
Que faut-il mettre en œuvre pour faire défiler automatiquement le champ de texte actif?
Idéalement, autant de configuration des composants que possible se fera dans Interface Builder. Je voudrais seulement écrire du code pour ce qui en a besoin.
Remarque: le UIView(ou UIScrollView) avec lequel je travaille est affiché par une barre d'onglets ( UITabBar), qui doit fonctionner normalement.
Edit: j'ajoute la barre de défilement juste au moment où le clavier apparaît. Même si ce n'est pas nécessaire, j'ai l'impression que cela offre une meilleure interface, car l'utilisateur peut faire défiler et modifier les zones de texte, par exemple.
Je l'ai fait fonctionner où je change la taille d'image du UIScrollViewquand le clavier monte et descend. J'utilise simplement:
-(void)textFieldDidBeginEditing:(UITextField *)textField {
//Keyboard becomes visible
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height - 215 + 50); //resize
}
-(void)textFieldDidEndEditing:(UITextField *)textField {
//keyboard will hide
scrollView.frame = CGRectMake(scrollView.frame.origin.x,
scrollView.frame.origin.y,
scrollView.frame.size.width,
scrollView.frame.size.height + 215 - 50); //resize
}
Cependant, cela ne "monte" pas ou ne centre pas automatiquement les champs de texte inférieurs dans la zone visible, ce que j'aimerais vraiment.

