Wie ändern Sie Zeilenhöhe dynamisch in einer statischen UITableView Zelle
Ich bin mit UITableViewController
statt Detailansicht, um zu zeigen, eine Person details. Ich bevölkerte eine Reihe von Daten aus PFQuery in meinem viewDidLoad
Methode. Ich habe eine Zelle wo ich bin, mit Etikett, ich möchte, um die Größe zu ändern, wie pro NSString
Größe. Ich überprüfte eine Menge Antworten, aber alle sind mit indexPath
ist für die dynamische und ich habe statische Zellen. My label
zeigt die komplette Zeichenfolge, sondern meine Zelle ist fixiert. Wie kann ich die Höhe der Zelle? Bitte helfen Sie mir, um dieses problem zu beheben.
Hier ist mein 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);
}
}];
}
Ich versuche zu tun, die folgenden durch Auswahl einzelner Zellen, aber es gab mir UITableView Fehler wie ich haben, nicht definieren, tableView, wie kann ich festlegen, oder wenn Sie irgendwelche anderen gute Lösung, lasst es mich bitte wissen.
static NSString *simpleTableIdentifier = @"DetailsDesecriptionCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
Ich bin auch offen auf die Kritik über die Qualität coding, so Ihr feedback ist sehr wertvoll für mich.
- toll zu sehen, dass ich dir helfen konnte...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit autolayout. Fügen Sie oben, Links und rechts beschränken Sie sich in Ihrem label.
Dann in
heightForRowAtIndexPath
erstellen Sie Ihre ZelleWerte, um label und berechnen Sie die Größe der Beschriftung nach Einstellung den Wert
Dies wird Ihnen die genaue Höhe des Etiketts und die Zelle der Höhe gleich,
Wenn es IOS 8 ODER 9, gibt es eine einfache Lösung.
Unten ist, wie ich es Tue.
Nun in
cellForRowAtIndexPath
passen Sie die Höhe der tatsächlichen Etikett nach der Höhe der Zelle.Lassen Sie mich wissen, wenn Sie nicht klar sind.
Habe ich getan versuchen, zu erreichen, das von vielen Tagen, konnte aber nicht. Ich habe versucht, Fahim Antwort und erhielt Ahnung, Folgendes ich habe aus verschiedenen anderen beantworten und in der Lage gewesen, es zu vollenden.
Code Hinzugefügt habe ich folgende Funktion, um die genaue Größe von meinem label
Als ich habe indexPath mit allen Größen Zelle zurückgegeben werden, zeigen hier nur eine Zelle in der Größe.
Aber nach diesem war ich immer die perfekte Größe-label, aber immer noch mehr zu tun als ich mit PFQuery und tableView indexPath, der zuerst ausgeführt wird, dass ist der Grund, warum es konnte nicht aktualisiert meine Tabelle und ich war noch nicht in der Lage, um die Größe der Zelle. Als hier ist der magic Linie, die lädt mein tableView und lösen mein Problem
Obwohl die Frage ist einfach, aber es hat eine Menge Dinge, also ich habe als Antwort auf Hilfe anderer Völker.