2009-08-17 1 views
0

Ich habe eine UITableView, die einzelne große Bilder in jeder Zelle anzeigt. Die Namen der Bilder sind in einem Verzeichnis gespeichert. Ich möchte die Höhe jeder Zelle anpassen, um die Höhe des Bildes anzupassen.Legen Sie Zeilenhöhe aus der Höhe eines Bildes aus einer PLIST

Kennt jemand eine Möglichkeit, um die Höhe für ein Bild zu erhalten und damit die Zeilenhöhe festzulegen?

Ich habe Probleme, dieses zu finden und wirklich jede Hilfe zu schätzen.

Antwort

0

Hier ist der Code, der tatsächlich funktioniert. Ich habe es unter die heightForRowAtIndexPath-Methode gestellt.

UIImage *imageForHeight = [UIImage imageWithContentsOfFile:MyImagePath]; 

imageHeight = CGImageGetHeight(imageForHeight.CGImage); 

return imageHeight; 

Nur mit:

CGFloat imageHeight = image.size.height; 

als Jason aus irgendeinem Grund nicht funktioniert hat empfohlen. Aber er hat mich auf die richtige Spur gebracht.

1

Das beste, was zu tun wäre, wäre wahrscheinlich, die Bildhöhen in Ihren Plist vorzuladen. Andernfalls müssen Sie das Image laden (mithilfe der imageWithContentsOfFile: -Methode von UIImage) und dann die Größe (eine Eigenschaft) abrufen.

Um benutzerdefinierte Tabellenzeilenhöhen festzulegen, implementieren Sie -tableView: heightForRowAtIndexPath: im Delegaten Ihrer Tabelle.

+0

Danke für die Vorschläge. Haben Sie Tipps zum Vorladen der Bildhöhen in den Plist? Danke! – Jonah

+0

Wenn Sie es in die PLIST einfügen, haben Sie einen anderen Schlüssel, für den Sie die Höhe festlegen, anstatt zur Laufzeit. Tun Sie es einmal, wenn Sie es einfügen. – Garrett

1

Die Eigenschaft für die Höhe eines UIImage Objekt - lasst es image nennen - ist:

CGFloat imageHeight = image.size.height; 
Verwandte Themen