Redimensionner la taille de UITableView pour qu'elle soit aussi élevée que nécessaire pour ne contenir que la taille totale du contenu
Donc je vais avoir une question très fondamentale. J'ai cette UITableView
dans un view
et j'aimerais faire de ce tableau, la hauteur d'aussi haut qu'il doit être pour l'affichage de TOUTES les lignes dans la table. Donc, je ne veux pas être capable de faire défiler, je veux juste que toutes les lignes apparaissent. (Les lignes sont dynamiques dans la quantité et de la height
).
-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGSize cellSize = [[[_stepsArray objectAtIndex:indexPath.row]content] sizeWithFont:[UIFont boldSystemFontOfSize:18.0f] constrainedToSize:CGSizeMake(528.0f, CGFLOAT_MAX)lineBreakMode:NSLineBreakByWordWrapping];
return cellSize.height;
}
Si il y a 20 lignes, le tableau sera très élevé, mais si il est à seulement 1 ligne, il sera très faible et l'autre le contenu n'apparaît pas 19 lignes ci-dessous.
source d'informationauteur abisson
Vous devez vous connecter pour publier un commentaire.
si je comprends bien, vous devriez être en mesure d'ajouter de la hauteur de chaque ligne et de régler la tableview la hauteur en fonction de:
vous pouvez le faire immédiatement après [tableView reloadData]
Ici est plus de solution plus simple: il vous suffit de définir
sizeToFit
sur votreUITableView
après qu'il a été rempli avec les cellules. Si vous définissezdelegate
etdataSource
parxib
vous pouvez le faire dans votreviewDidLoad
méthode, ouviewDidAppear
comme ceci:Mais, si vous ajoutez
delegate
etdataSource
quelque part dans le code, vous devez mettresizeToFit
après:Aussi, vous devez le faire après reloadTable, si vous le faites, quelque part.
Cela permettra de redimensionner votre tableau, exactement à la hauteur, qui est la somme de ses cellules de hauteur!
Vous pouvez essayer comme ça,
Dans Swift 3.0
Ajouter un observateur de la contentSize de propriété sur la vue de la table, et ajuster la taille de l'image en conséquence
Dans le viewDidLoad ajouter la ligne de code suivante
puis dans le rappel:
Espère que cela va vous aider.
Définir une hauteur de contrainte sur la table, se connecter à une prise de courant, et ajoutez les lignes suivantes à votre vue-contrôleur:
Simplement utiliser
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectZero];
Qui permettra de résoudre votre problème.