Comment faire pour modifier la hauteur de la cellule de façon dynamique dans la UITableView statique de la cellule
Je suis en utilisant UITableViewController
au lieu fenêtrede travail pour montrer une entité de détails. J'ai remplie une ligne de données de PFQuery dans mon viewDidLoad
méthode. J'ai une cellule où je suis à l'aide de l'étiquette, je veux changer la taille que par NSString
taille. J'ai vérifié beaucoup de réponses, mais elles sont toutes liées à indexPath
qui est dynamique et j'ai cellules statiques. My label
montrant l'intégralité de la chaîne, mais ma cellule est fixe. Comment puis-je changer la hauteur de la cellule? Merci de m'aider à corriger ce problème.
Voici mon code:
- (void)viewDidLoad
{
[super viewDidLoad];
PFQuery *query = [PFQuery queryWithClassName:@"Entities"];
[query whereKey:@"name" equalTo:entityName];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
if (!error) {
PFFile *thumbnail = [objects[0] objectForKey:@"image"];
detailsImageView.image = [UIImage imageNamed:@"loader.gif"];
detailsImageView.file = thumbnail;
[detailsImageView loadInBackground];
detailLabel.numberOfLines = 0; //this label need dynamic height and its cell
detailLabel.text = [objects[0] objectForKey:@"descriptionLarge"];
[detailLabel sizeToFit];
} else {
NSString *errorString = [[error userInfo] objectForKey:@"error"];
NSLog(@"Error: %@", errorString);
}
}];
}
Je suis en train de faire la suite en sélectionnant des cellules individuelles, mais il m'a donné UITableView erreur que je n'ai pas de définir tableView, comment puis-je définir ou si vous avez toute autre bonne solution s'il vous plaît laissez-moi savoir.
static NSString *simpleTableIdentifier = @"DetailsDesecriptionCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
Je suis aussi ouverte sur la critique de codage de qualité afin que vos commentaires sont précieux pour moi.
OriginalL'auteur KamalPanhwar | 2014-08-21
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez la mise en page automatique. Ajouter en haut, à gauche et à droite contraindre à votre étiquette.
Puis dans
heightForRowAtIndexPath
créer votre celluleDéfinir les valeurs de l'étiquette et de calculer la taille de l'étiquette après le réglage de la valeur
Cela va vous donner la hauteur exacte de l'étiquette et votre hauteur de la cellule sera même
Il est tout simple tableview cellule. Vérifiez j'ai mis à jour ma réponse
C'est une boucle infinie!!
Comment pouvez-vous expliquer ?
OriginalL'auteur Jay Gajjar
Si c'est IOS 8 OU 9, il y a une solution simple.
Ce n'est pas un travail pour moi. Merci de me donner une solution. J'ai créé une cellule personnalisé avec XIB. Il a UITextview et a ajouté contraindre(en haut, à gauche,en bas,à droite) comme vous l'a dit. Mon code est en Objective-C
Elle est valable pour une dynamique prototype de cellules non pour les cellules statiques.
OriginalL'auteur L.L.
Ci-dessous est de savoir comment je le fais.
Maintenant dans
cellForRowAtIndexPath
ajuster la hauteur de l'étiquette réelle que par la hauteur de la cellule.Laissez-moi savoir si vous n'êtes pas clair.
OriginalL'auteur Fahim Parkar
Je l'ai fait en essayant de réaliser à partir de nombreux jours, mais ne pouvait pas. J'ai essayé de Fahim réponse et a obtenu la moindre idée, après j'ai eu d'autre réponse différente et ont été en mesure de le compléter.
Code j'ai ajouté la fonction suivante pour obtenir la taille exacte de mon label
Que j'ai ajouté indexPath avec toutes les tailles de cellule pour être retourné montrant ici, seule la taille des cellules.
Mais après cela, j'ai été prise en parfait taille de l'étiquette, mais encore plus de le faire comme je l'ai été en utilisant PFQuery et tableView indexPath s'exécute en premier, c'est pourquoi il ne pouvait pas mettre à jour mon tableau et je n'étais toujours pas capable de redimensionner les cellules. Que ici est la magie de la ligne qui recharge mon tableView et résoudre mon problème
Bien que la question est simple mais il y a beaucoup de choses donc je l'ai mis comme réponse à aider les autres peuples.
OriginalL'auteur KamalPanhwar