UITableView scrollToRowAtIndexPath ne fonctionne pas pour le dernier 4
Je suis dans un UITableViewController et j'ai textfields à l'intérieur des cellules. Lorsque l'utilisateur clique sur le champ, je mets en œuvre la UITextFieldDelegate et dans la méthode textFieldDidBeganEditing je déterminer l'indice de la cellule et faites défiler jusqu'à cette position. Il fonctionne parfaitement pour toutes les cellules attendre pour les 4-5 dernières cellules. Ce que je fais mal? Merci.
source d'informationauteur user635064
Vous devez vous connecter pour publier un commentaire.
scrollToRowAtIndexPath: méthode défile à la cellule de UITableViewScrollPositionTop ou UITableViewScrollPositionMiddle seulement si le tableView de contentSize est assez grand pour apporter de la cellule à ces postes. Si la cellule que vous essayez de faire défiler vers le haut ou moyen est la dernière cellule ou parmi les derniers de cellules, il ne peuvent pas être affichés à moyen ou haut. Dans ces situations, vous devez calculer la contentOffset manuellement pour ces cellules.
Modifier - le Calcul de l'contentOffset:
Pour le calcul de la contentOffset utiliser la méthode spécifiée par @Schoob. Placez le code suivant dans votre textFieldDidBeginEditing méthode.
J'ai trouvé la clé de l'utilisation scrollToRowAtIndexPath était de s'assurer de faire appel après le point de vue a été présenté. I. e. poussé vers un navigationcontroller ou présentés sous forme modale.
Mon code de travail qui va comme ceci
Code appelant
Viewcontroller code à l'intérieur de viewWillAppear
Si je l'ai fait d'une autre façon il y a toujours des cas où ça ne fonctionne pas. Je suppose que nous voulons faire défiler en retard dans la présentation du cycle.
C'est ce que vous devez utiliser lorsque vous essayez de déterminer la indexPath de vue/champs ajoutés sur une UITableViewCell
Puis utilisez le point avec