J'ai un peu (regroupés tables dans mon application iphone (uniquement sur la partie de l'écran et a ajouté avec Interface Builder cependant, ne pas sous-classé de UITableViewController) que 80% du temps sont de petite taille et s'adapte à l'écran. Quand la table s'adapte à l'écran, j'aimerais désactiver le défilement, pour le rendre un peu plus propre. Mais si la table est hors de l'écran (lorsque les lignes sont ajoutés plus tard), je voudrais activer le défilement à nouveau (parce que sinon, vous ne pouvez pas voir que le contenu.)
Est-il un moyen de faire cela? Je n'arrive pas à le comprendre. Je ne sais faire:
tableView.scrollEnabled = NO;
mais je ne suis pas sûr de l'endroit où, ou si je dois calculer la table de la taille d'un objet ou quelque chose pour que tout 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 l'appel de reloadData sur la table, et il calcule la bonne taille et semble fonctionner.
table.cadre.taille.la hauteur est la taille réelle de l'objet (vous pouvez le voir dans Interface Builder) affichée sur l'écran, tandis que le tableau.contentSize.la hauteur est sur les hauteurs de: l'en-tête, pied de page et la hauteur de chaque cellule de ajouté.