J'ai quelques tableaux (style groupé) dans mon application iphone (uniquement sur une partie de l'écran et ajoutés avec, Interface Builder
mais non sous-classés UITableViewController
), dont 80% du temps sont petits et s'adapteront à l'écran. Lorsque le tableau tient sur l'écran, je voudrais désactiver le défilement, pour le rendre un peu plus propre. Mais si le tableau disparaît de l'écran (lorsque des lignes y sont ajoutées ultérieurement), j'aimerais réactiver le défilement (car sinon vous ne pouvez pas voir ce contenu.)
Y a-t-il un moyen de faire cela? Je n'arrive pas à comprendre. Je sais faire:
tableView.scrollEnabled = NO;
mais je ne sais pas où, ni si je dois calculer la taille de l'objet de la table ou quelque chose pour que cela fonctionne.
Mise à jour : voici la solution qui a finalement fonctionné pour moi:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
J'exécute ce code après avoir appelé reloadData
la table, il calcule les bonnes tailles et semble fonctionner.
table.frame.size.height
est la taille réelle de l'objet (vous pouvez le voir dans Interface Builder
) affiché à l'écran, tandis que table.contentSize.height
les hauteurs de: l'en-tête, le pied de page et la hauteur de chaque cellule sont additionnées.