J'ai créé un UITableView
et je voudrais qu'un UITableViewCell
spécifique apparaisse sélectionné (bleu) lorsque la vue est chargée.Comment sélectionner un UITableViewCell par défaut?
Répondre
Utilisez la méthode UITableViewCell
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
Infos here.
Peut-être que la méthode suivante convient mieux? http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/occ/instm/UITableViewCell/setHighlighted:animated: –
quelle méthode? le lien ne va pas à une méthode particulière – Daniel
O si etnd il, celui-là met en évidence et ne le sélectionne pas, je suppose que c'est tout le demandeur veut alors sûr que c'est plus approprié – Daniel
Soyez judicieux en utilisant cette méthode, car la sélection de la ligne de cette manière est quelque chose que Apple suggests against fait pour montrer un état "choisi".
Au lieu de cela, envisagez de définir la propriété accessoryType
de la cellule sur UITableViewCellAccessoryCheckmark
.
J'essaie de reproduire l'utilisation d'Apple UI lorsque vous ajoutez/Editer un événement dans l'application Calendrier et définir une date/heure de début et de fin. J'ai vu des commentaires sur la règle de coche ailleurs, mais je ne sais pas si cela s'appliquerait dans ce cas (la table est utilisée pour mettre en page des composants plutôt que présenter une liste de données). – user119857
C'est un point intéressant.Dans ce cas, ils n'ont pas besoin d'avoir une sous-vue pour chaque début et fin car ils représentent tous deux le même type de données, modifié par le même type de UIPickerView. Cela représenterait donc un usage judicieux. Ils utilisent probablement la méthode selectRowAtIndexPath de UITableView: animated: scrollPosition: ... voir http://tinyurl.com/yd9zs65 –
Soyez vigilant. Je suis sûr que vous avez une bonne raison, mais regardez attentivement le document Human Interface Guidelines fourni par Apple. Les applications sont rejetées pour ne pas désélectionner les lignes de table. Je vous encourage à trouver la section appropriée du HIG et voir Apple offre des suggestions.
-(void)viewWillAppear:(BOOL)animated {
// assuming you had the table view wired to IBOutlet myTableView
// and that you wanted to select the first item in the first section
[myTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]
animated:NO
scrollPosition:UITableViewScrollPositionTop];
}
J'utilise cette technique pour sélectionner l'un des deux UITableViewCells
afin que les utilisateurs ne sait quelle cellule une vue UIDatePicker
dessous de la table il effet. Cette technique est utilisée par Apple dans l'application de calendrier lorsque vous créez un nouvel événement et définissez les dates.
1. cela ne fonctionne pas pour moi. 2. Apple dit que vous devez utiliser une coche pour indiquer l'état de sélection d'un élément. –
Vous devriez le mettre dans viewWillAppear
.
[myTableView selectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]
animated:NO
scrollPosition:0];
Si vous essayez de le sélectionner dans cellForRowAtIndexPath:
, il ne prendra pas le style requis.
Parfois, lorsque vous n'êtes pas dans un UIViewController
, vous n'avez pas viewWillAppear
, et parfois, vous avez créé votre UITableView
par programme.
La solution facile est de mettre en œuvre cette méthode delegate
:
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.selectedIndex == indexPath.row) {
cell.selected = YES;
}
}
Il est ne fonctionne pas dans le cellForRowAtIndexPath
parce que la cellule n'est pas encore affichée. et la méthode setSelected
est appelée juste quand celle-ci est affichée.
Utilisez ce code pour sélectionner la cellule par défaut dans la vue tableau, indexPath
peut être varier en fonction de vos besoins
-(void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
NSIndexPath *indexPath=[NSIndexPath indexPathForRow:0 inSection:0];
[theTableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
}
- 1. Personnaliser dessiner un UITableViewCell
- 2. Comment sélectionner un objet UITextField?
- 3. Comment sélectionner un TreeNode par son nom?
- 4. Flex 3 - comment sélectionner un élément dans la liste par défaut?
- 5. L'utilisateur par défaut a un identifiant différent par défaut
- 6. Comment modifier un template Xcode par défaut?
- 7. frapper un bouton suivant pour un UITableViewcell
- 8. iPhone UITableView, comment définir la ligne par défaut cochée onViewLoad?
- 9. Conventions par défaut de NHibernate par défaut
- 10. couleur de sélection pour un UITableViewCell
- 11. Comment rafraîchir UITableViewCell?
- 12. comment retarder l'action par défaut?
- 13. XPath: Comment sélectionner un nœud par son attribut?
- 14. Comment puis-je sélectionner un champ masqué par valeur?
- 15. Comment sélectionner un CookieJar?
- 16. Faire un double-défaut par défaut dans g77, compilateur Fortran
- 17. Vue par défaut de l'élément de liste par défaut Sharepoint
- 18. Comment sélectionner l'enfant du parent par classe commençant par $ (this)
- 19. C# paramètres par défaut
- 20. SQL Server - comment définir l'indicateur (nolock) par défaut?
- 21. Comment sélectionner un fichier automatiquement?
- 22. Comment ouvrir un fichier avec le programme associé par défaut
- 23. Comment fournissez-vous un type par défaut pour les génériques?
- 24. Comment définir un onglet par défaut avec Jquery UI
- 25. Comment configurer un commentaire d'archivage par défaut pour CVS?
- 26. Comment ajuster les références par défaut pour un nouveau projet?
- 27. Comment désérialiser xml avec un espace de noms par défaut?
- 28. sélectionner la requête par plage
- 29. iPhone Impossible de désélectionner un UITableViewCell
- 30. Python optparse par défaut vs fonction par défaut
Voir cette question: http://stackoverflow.com/questions/19295297/uitableviewcell- set-selected-initialement/25128427 # 25128427 –