2010-05-11 4 views
1

J'utilise une vue déroulante pour déplacer ma vue et afficher certains champs de texte (qui seraient autrement cachés) lorsque le clavier affiche. Je redimensionne fondamentalement la vue de défilement pour faire de la place pour le clavier, puis faites défiler la vue en douceur avec "scrollRectToVisible", qui fonctionne parfaitement. Après cela, je peux faire défiler et modifier le reste des champs de texte sans abaisser le clavier, ce qui est ce que j'ai l'intention.Faire défiler la vue vers le bas pendant que le clavier se cache

Le problème vient quand je veux cacher à nouveau le clavier. J'ai été capable d'abaisser le clavier et de faire défiler la vue vers sa position d'origine sans problème, mais j'ai été incapable de rendre cette transition fluide.

Au moment où j'utiliser ce qui suit:

- (void)keyboardWillHide: (NSNotification *)notif { 

    CGRect topRect = CGRectMake(0, 0, 1, 1); 
    [scrollview scrollRectToVisible:topRect animated:YES]; 

    scrollview.frame = CGRectMake(0, 0, scrollviewWidth, scrollviewHeight);  
} 

créer un CGRect en haut, que je puis passer en vue avec « scrollRectToVisible ». Cela fonctionne bien et commence le défilement juste quand le clavier se cache (j'utilise "keyboardWillHide" et non "keyboardDidHide" parce que le cadre de vue de défilement manque toujours sa partie inférieure). Le problème survient lorsque je redimensionne le cadre de la vue défilée à ses dimensions d'origine (ce que je dois faire), car alors le défilement est interrompu et la vue tombe soudainement en bas (comme il n'y a rien d'autre à faire défiler) . Cela provoque un problème, ce qui explique pourquoi je ne peux pas terminer la transition en douceur.

Des idées sur la façon dont je pourrais abaisser le clavier tout en faisant défiler la vue en douceur?

Dois-je faire défiler une vue plus grande au lieu de la redimensionner? De cette façon, je n'aurais pas à restaurer les dimensions du cadre de la vue défilée lorsque j'abaissais le clavier, ou le ferais-je?

Merci beaucoup d'avance!

Répondre

0

Vérifiez la réponse à cette question ...

How to make a UITextField move up when keyboard is present?

+0

Salut Staros, merci pour répondre! J'ai déjà pris cette approche, mais je pense que dans cet exemple ce qu'ils redimensionnent est la vue, pas la vue de défilement (et je veux toujours utiliser une vue de défilement lorsque le clavier est affiché). Dois-je redimensionner une vue comportant une vue de défilement, au lieu de la vue de défilement elle-même, puis défiler vers des champs de texte spécifiques? Je n'ai pas essayé, c'est ce que vous suggérez? Je verrai ce que je peux faire quand je rentrerai à la maison. Merci encore! – Manu

+0

La dernière des réponses, celle écrite par "Shiun" a fait l'affaire. Merci! – Manu

Questions connexes