Comment faire défiler vers le haut d'une UITableView dans iOS 7
Dans iOS 7, j'utilise le code suivant pour faire défiler vers le haut de mon UITableView. Vous avez pour tenir compte de la superposition de l'translucide barre d'état et la barre de navigation.
[tableView
setContentOffset:CGPointMake(
0.0,
-tableViewController.topLayoutGuide.length
)
animated:YES
];
Cela fonctionne ne fonctionne que après la première fois que vous l'appelez. La première fois que vous l'appelez, ma table défile beaucoup plus loin qu'il ne le devrait, montrant beaucoup d'espace blanc. En outre, la UIRefreshControl semble figé. Vous devez pousser la table un peu pour le faire rebondir le vrai sommet. Par la suite, vous pouvez appeler ce code autant de fois que vous le souhaitez et il se comporte comme vous le souhaitez.
J'ai essayé d'autres moyens, mais ils ont tous des problèmes. L'iOS 6 se comporte de façon tout aussi bizarrement sur le premier appel. Bien qu'il ne saute pas une quantité énorme sur les appels suivants, ils ne sont pas correctes car ça défile à 64,0 points en dessous de la partie supérieure du tableau, parce que nous avons oublié de compte pour le statut et la barre de navigation.
[table setContentOffset:CGPointZero animated:YES];
J'ai aussi essayé de défilement de la première cellule, mais il n'a pas faites défiler vers le haut dans un appel. Il ne défilement d'une page de la valeur chaque fois que vous l'appelez.
[tableView
scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]
atScrollPosition:UITableViewScrollPositionTop
animated:YES
];
[tableView scrollRectToVisible:CGRectMake(0.0, 0.0, 1.0, 1.0) animated:YES]
seulement fait défiler un écran vers le haut-plein à la fois. - Je l'appelle ainsi à de nombreuses reprises pour faire défiler jusqu'à la première cellule. Peut-être que c'est juste mon code ... je ne sais pas ...OriginalL'auteur Pwner | 2013-11-26
Vous devez vous connecter pour publier un commentaire.
Essayez celui-ci:
Dans SWIFT
Swift 4.0 et au-dessus de
fonctionne parfaitement! merci! m'a sauvé!
OriginalL'auteur Dhaval Bhadania
j'ai regardé d'autres réponses et a trouvé la solution suivante qui a fonctionné pour moi.
De l'espoir, il permet de résoudre votre problème.
OriginalL'auteur Vinay Jain
ce n'est pas "magique". 64 décalage est pour la barre d'état(20 points) et la barre de navigation(44 points) hauteurs. Si la scrollview avoir un offset de 0 et vous avez également une barre d'état + barre de navigation, il serait en vertu de ces objets et vous verrez -64.0 de votre contenu original. Dans le storyboard, il existe une option "Ajuster le défilement de l'affichage des encarts" et cette option est cochée par défaut
OriginalL'auteur shota
Essayer:
Sonne comme un comportement aberrant pour moi. Par la documentation d'Apple, réglage contentOffset devrait vous prendre à l'offset, de la période. Êtes-vous à l'aide à la vanille, UITableView?
OriginalL'auteur skedastik
Veuillez essayer ceci:
L'échantillon est comme ceci:
OriginalL'auteur banumelody
En Objective-C
Et dans Swift:
OriginalL'auteur Vatsal Raval
En Objective-C
Dans Swift
OriginalL'auteur Garry
iOS scrollview est au comportement un peu étrange. Le 64.0 offset a été ajouté comme par "magie" de la première scrollview dans le point de vue de la hiérarchie "la première fois" comme vous l'avez mentionné. Je n'ai pas compris pourquoi ce qui se passait. Pour le moment je n'avais vraiment hackish solution: vous pouvez ajouter un mannequin de défilement de la première défilement dans le point de vue de la hiérarchie, avec la hauteur réglée sur 0. Après cela, vous la solution de travail comme d'habitude.![entrez la description de l'image ici][1]
capture d'écran : http://imgur.com/LvrbcqG
Espère que cette aide.
Quelqu'un d'autre sait pourquoi ce qui se passe en premier lieu ?
OriginalL'auteur noooooooob