2010-08-16 8 views
0

J'utilise un splitviewcontroller. Lorsque je sélectionne quelque chose dans le tableau, la ligne est mise en surbrillance et apparaît dans la vue détaillée. J'ai également fourni une option pour changer le contenu dans la vue détaillée en faisant défiler.Comment faire un UITable pour mettre en évidence sa 5e rangée lorsque nous démarrons l'application?

Quand je commence, je veux que la 5ème rangée soit mise en évidence par elle-même, comment puis-je le faire?

+0

La mise en évidence des lignes doit être transitoire. Apple a dit que c'est une violation HIG de laisser une ligne en surbrillance après que l'utilisateur l'a touché (vous devez utiliser quelque chose comme la vue accessoire coche pour indiquer la sélection à la place), alors procéder avec prudence. –

Répondre

0

Vérifiez la méthode UITableView suivante:

- (void)selectRowAtIndexPath:(NSIndexPath *)indexPath animated:(BOOL)animated scrollPosition:(UITableViewScrollPosition)scrollPosition; 
+0

Ya, j'essayais de l'appeler d'une manière ou d'une autre. L'a écrit dans viewDidLoad comme ceci. Mais son écrasement. \t NSIndexPath * scrollIndexPath = [NSIndexPath indexPathForRow: 5 inSection: 0]; \t [self.tableView scrollToRowAtIndexPath: scrollIndexPath àScrollPosition: UITableViewScrollPositionTop animé: YES]; – wolverine

0

j'utilisais la fonction ci-dessus dès le début. Mais l'application s'est écrasée quand j'ai écrit ce code dans viewDidLoad.

NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:5 inSection:0]; 
[self.tableView scrollToRowAtIndexPath:scrollIndexPath atScrollPosition:UITableViewScrollPositionTop animated:YES]; 

Aucune donnée n'a été chargée dans l'instance UITableView. Vous ne pouvez pas sélectionner une ligne qui n'existe pas. C'était la raison pour laquelle il s'écroulait. Et oui, c'est la fonction qui nous aidera à le faire.

+0

Oui, vous avez raison, les données ne sont pas encore chargées dans la vue de la table, il n'y a pas de cellule au chemin de l'index (5,0). Essayez de l'appeler dans '- (void) viewDidAppear: (BOOL) animated;' à la place, cela devrait fonctionner. – David