Force UITableView pour faire défiler vers le haut?
Comment feriez-vous forçant un UITableViewCell pour faire défiler vers le haut si la tableview contient moins de 10 ou si les cellules? J'ai en charge la modification de l'Objet Géré Contextes dans mon tableView de cellules, tandis que la tableview est en mode d'édition. Inutile de dire que, si une cellule est au bas de la tableview, il devient bloqué par le clavier lorsqu'un utilisateur accède à modifier le titre ou le lieu d'un événement. J'ai essayé une solution comme:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath*)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:NO];
if(_selectedIndex == indexPath.row){
_selectedIndex = -1;
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
return;
}
if(_selectedIndex >= 0){
NSIndexPath *previous = [NSIndexPath indexPathForRow:_selectedIndex inSection:0];
_selectedIndex = indexPath.row;
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:previous]
withRowAnimation:UITableViewRowAnimationFade];
}
_selectedIndex = indexPath.row;
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];
[tableView setContentOffset:CGPointMake(0, [tableView rowHeight]*indexPath.row) animated:YES];
}
Mais cela n'empêche pas la tableview à la contentOffset. il sautera vers le haut, puis snap back
OriginalL'auteur HighFlyingFantasy | 2012-06-29
Vous devez vous connecter pour publier un commentaire.
Avez-vous envisager de glisser l'ensemble de la tableview?
edit: j'ai trouvé quelque chose qui ressemble à cela correspond à ce que vous recherchez:
Code ici.
Ce code rétrécit l'encart de la vue de la table du fond, ce qui permet ensuite d'afficher l'un de ces cellules inférieures sans claquer vers le bas.
et je ne suis pas en utilisant un .xib ou storyboard pour cette question... tout a été aménagé dans l'une-vue-contrôleur (pour soutenir glissez vers la gauche/droite animations) à l'aide de auto-suffisante des sous-vues
Il suffit de Saisir le TPKeyboardAvoidingTableView.m/.h de fichiers et de définir votre UITableView instance à être une instance de que plutôt que. Vous n'avez pas besoin d'avoir un xib ou un UITableViewController. Alternativement, vous pouvez simplement arracher le code que vous avez besoin d'elle et la mettre dans votre vue-contrôleur et pas de sous-classe. Si cela s'avère ne pas être une solution adaptée pour une raison que je vais essayer de vous aider davantage.
je ne sais pas si j'ai mis en place correctement, mais juste de le laisser tomber dans et changer ma tableview ne pas faire n'importe quoi. tous mes tableview fonctionnalité fonctionne, mais il ne glisse pas. j'ai oublié de mentionner que la modification se produit seulement lorsque le tableview est en mode d'édition
J'ai eu ce travail, seulement il a créé un autre problème pour moi... Mon tableView cellules se développer, mais ne s'écroule pas correctement. Il fait se bloque si j'essaie de l'effondrement d'une cellule
OriginalL'auteur Dima
J'aime la solution suivante, car elle aussi fait défiler vers le haut d'une vue d'en-tête si vous en avez un.
OriginalL'auteur Kyle Clegg
Vous devriez probablement utiliser cette méthode sur UITableView:
Essentiellement ce que vous faites, c'est que lorsque l' [tableView:didSelectRowAtIndexPath:] méthode de votre UITableViewDelegate est appelée, vous passez l'index de la sélection de la méthode ci-dessus et de définir scrollposition = UITableViewScrollPositionTop.
Que de défilement de la cellule sélectionnée vers le haut de l'écran et hors de la voie du clavier.
La méthode que je mentionne ci-dessus permettra de résoudre le problème de la garde de la cellule modifiée visible. Mais vous ne serez PAS en mesure de garder les cellules en suivant le clavier vers le bas, quand elle est rejetée si elle est la dernière cellule par exemple. Tout simplement rien d'autre à faire qu'à l'exception d'ajouter factices ou des cellules vides.
j'ai déjà essayé cela, la méthode ne fait rien
Pendant le défilement en haut de la liste si vous voulez aussi faire afficher l'en-tête d'utilisation UITableViewScrollPositionMiddle
OriginalL'auteur Cliff Ribaudo
UITableView est une sous-classe de UIScrollView, de sorte que vous pouvez également utiliser:
OriginalL'auteur itsji10dra
Avez-vous essayer? :
L'échantillon est:
OriginalL'auteur banumelody
Cela fonctionne dans mon cas, également, il défile à headear du haut Si vous avez:
https://developer.apple.com/documentation/uikit/uitableview/1614872-rectforheader
OriginalL'auteur Sagar Thukral