Montrer la barre de scroll à l’affichage d’une UITableView
En codant une application iPhone, on utilise très souvent un élément graphique, la TableView. Pour cela, on utilise un objet de type UITableView.
Cette vue peut être gérée par un contrôleur de type UITableViewController, mais dans les faits, il n’est pas souvent utilisé. Apple, dans son guide de programmation, le déconseille dès que la TableView est une vue parmis celles qui seront affichées en même temps. On va donc plutôt utiliser un contrôleur de type UIViewController.
Dans l’iPhone HIG d’Apple (iPhone Human Interface Guidelines), Apple explique qu’il faut toujours indiquer la taille d’une TableView à l’utilisateur, et ne pas l’induire en erreur dans la sélection d’une ligne. Un contrôleur de type UITableViewController le fait tout seul, mais pas un de type UIViewController.
Le code va vérifier à l’affichage qu’aucune ligne n’est sélectionnée (surtout qu’en on revient en arrière dans une UINavigationBar) et que l’utilisateur voit la taille de la TableView, en lui montrant la barre de scroll à droite, quelques instants.
Dans notre fichier d’entête du UIViewController, on doit avoir une variable qui pointe vers la TableView.
IBOutlet UITableView *_tableView;
Dans le fichier d’implémentation, on va utiliser réécrire 2 méthodes d’instance pour déselectionner la possible ligne sélectionnée, et afficher le scroll, si et seulement si la TableView est plus grande que la taille de l’écran.
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[_tableView deselectRowAtIndexPath:[_tableView indexPathForSelectedRow] animated:animated];
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[_tableView flashScrollIndicators];
}
Voilà, notre TableView est bien affichée par un contrôleur de type UIViewController, en respectant le guide de l’interface homme-machine pour iPhone d’Apple.




Mercredi dernier, 10 février, j’ai pu aller assister avec un collègue à la réunion mensuelle du 




