Réduire la hauteur d’une UITableView

Prenons un cas simple: on a une UIView qui contient une simple UITableView (avec le UITableViewController qui va bien) ainsi qu’une UIToolBar en bas. On se retrouve avec un léger problème: la UITableView ne se redimensionne pas automatiquement en hauteur. Ainsi, les derniers éléments se retrouvent « cachés » par la barre. Voici un exemple fait à la va-vite avec Interface Builder (la UIToolBar a été volontairement mise en transparence pour illustrer le problème):

uitableviewsizeproblem

Le souci, c’est qu’il n’est pas possible de préciser dans le code la taille d’une UITableView. Après avoir essayé plusieurs solutions (dont certaines était plutôt farfelue), j’en ai retenu une. C’est celle qui m’a semblé la plus propre, simple et efficace.

Il s’agit tout simplement de créer une vue vide de la taille de la UIToolBar (par défaut: 44 pixels). Puis de la mettre en tant que tableFooterView (une vue qui n’est affichée que tout en bas de la UITableView) sur la UITableView courante. L’idéal c’est de faire ça directement dans la phase d’initialisation (dans le UITableViewController). Concrètement ça donne ça:

self.tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 44)];

Laisser un commentaire

Un nom (requis)

Un mail (requis)

Peut être une URL ?

Réaction: