2017-04-11 4 views
1

J'ai vu beaucoup de réponses dans SO qui décrit comment je peux faire défiler UITableView vers la position spécifique. J'utilise setContentOffset pour faire défiler jusqu'à une position particulière.Défilement de UITableView à une position spécifique en utilisant setContentOffset ne fonctionne pas correctement - ObjC

Je rencontre un problème étrange. Si mon tableView est à moitié défilé, alors setContentOffset fonctionne correctement. Mais lorsque je fais défiler jusqu'à la fin du tableView et que j'utilise setContentOffset, la vue de tableau défile un peu plus.

Ma valeur setContentOffset est CGPoint(0,199). Après l'atteinte d'un fond, j'utilise setContentOffset. Ensuite, je vérifie le contentOffset de UITableView. et c'est 169. Je ne suis pas en mesure de comprendre exactement quel est le problème est

Modifier ::

J'utilise le code suivant. Quand un bouton dans la dernière cellule est pressée:

- (void)userPressedSubmitButtonOnLastCell 
{ 

[self updateData]; 
[self.tableView reloadData]; 
[self performSelector:@selector(scrollTableView) withObject:nil afterDelay:0.5]; 
} 

- (void)scrollTableView 
{ 
[self.tableView setContentOffset:CGPointMake(0,199) animated:NO]; 
} 
+0

Assurez-vous que vos «contraintes» sont correctes – Jack

+0

Oui mes contraintes sont correctes @Janesh – Dalvik

+0

Mettez à jour votre question avec le code de délégué scrollView – karthikeyan

Répondre

1

Pourquoi utilisez-vous pas tableView scrollToRowAtIndexPath: ou tableView scrollRectToVisible:(CGRect)? Cela vous permettra de faire défiler jusqu'à une ligne ou un rectangle spécifique. ContentOffset est plus approprié pour UIScrollView.

+0

En bas de ma vue de table (dans la dernière rangée) leur est un 'UIButton'. Au clic de ce bouton, je dois faire défiler la vue de la table en haut. Je ne peux pas utiliser 'tableView scrollToRowAtIndexPath:' parce que j'ai un en-tête (en-tête de vue de table) également. Et j'ai besoin de montrer une partie de Header aussi. – Dalvik

+0

Je pensais que votre question portait sur le défilement vers le bas, pas vers le haut? – Koen

+0

Je pense que vous pouvez utiliser 'tableView scrollRectToVisible:' et définir rect y = 0, afin qu'il défile vers le haut de la table –