2009-02-06 4 views
2

J'ai un fichier NIB avec un UIView, un couple de UIImageView (y compris un logo) et un insert UITableView dans le UIView sous le logo où je permets aux utilisateurs d'entrer un nom d'utilisateur/mot de passe pour vous connecter à mon application. J'ai aussi un troisième UITextField arbitraire dans un UITableViewCell ci-dessous le nom d'utilisateur/mot de passe. Le problème est, quand il est cliqué, le clavier couvre la rangée entière.- [UITableView scrollToRowAtIndexPath: atScrollPosition: animé:] enquête

J'ai utilisé -scrollToRowAtIndexPath:atScrollPosition:animated: dans d'autres parties de mon application avec succès, mais la différence est que mon UITableView couvrait toute la hauteur/largeur de la vue de contenu, donc le défilement a fonctionné. Ici, il ne défile pas du tout, et je vais le deviner car le UITableView est inséré dans l'UIView.

Des suggestions sur la façon d'obtenir le comportement approprié seraient très appréciées.

Répondre

3

J'ai fait face à la même situation. Il est suggéré de changer la hauteur de votre vue lorsque le clavier apparaît. Le problème dans le cas que vous avez décrit est, il n'y a pas assez de contenu dans le tableau pour faire défiler vers le haut et toujours avoir quelque chose dans la zone cachée par le clavier.

Si vous ajustez la taille de la tableview pour qu'elle soit égale à 480-150 (hauteur de la vue - hauteur du clavier) et que vous utilisez scrollToRowAtIndexPath, cela fonctionnera comme prévu. Une fois que le clavier se cache à nouveau, redimensionnez la hauteur de la table à la hauteur d'origine.

3

Avez-vous suffisamment de contenu dans la vue de table pour déborder de son cadre de délimitation? D'après votre description, il semble que vous ne puissiez pas, dans ce cas, il ne défilerait pas.