Einstellung UIImage Abmessungen auf UITableViewCell Bild
Habe ich eine standard - UITableViewCell
wo ich bin mit den text-und Bild-Eigenschaften für die Anzeige einer favicon.ico
und ein label. Für die meisten Teil, das funktioniert wirklich gut, da UIImage
unterstützt das ICO-format. Jedoch einige Websites (wie Amazon.com sagen) haben favicon.ico
s, in der ICO-format, die Fähigkeit zur Speicherung mehrerer Größen in der gleichen Datei. Amazon-Shops in vier verschiedenen Größen, die alle den Weg bis zu 48x48.
Diese Ergebnisse in den meisten Bildern 16x16 außer für ein paar, die kommen in auf 32x32 oder 48x48 und machen alles schrecklich Aussehen. Ich habe gesucht hier im offiziellen forum, der Dokumentation und anderswo ohne Erfolg. Ich habe alles versucht, was ich denken konnte, zu beschränken, von der Größe des Bildes. Das einzige, was funktionierte war eine undokumentierte Methode, die ich bin nicht zu verwenden. Dies ist meine erste app, und meine erste Erfahrung mit Cocoa (kam aus C#).
Fall, ich war nicht klar in dem, was ich Suche, idealerweise der Beratung Zentrum, um die Einstellung der Dimensionen des UIImage
so, dass die 48x48-version skaliert, 16x16 oder eine Methode sagen UIImage
zu verwenden, die 16x16-version vorhanden, in der ICO-Datei ein. Brauche ich nicht unbedingt-code: nur ein Vorschlag, ein Ansatz würde mir gut.
Hat jemand irgendwelche Vorschläge? (Ich fragte im offiziellen forum wie gut denn habe ich versenkt mehr als einen Tag in diesem schon. Wenn eine Lösung gepostet wird, gibt es, ich werde es auch hier.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, was Benutzer "bcd" über die offiziellen Foren gepostet, endete der Lösung des Problems (das mit einer geringfügigen änderung durch mich selbst, um es statisch für die Aufnahme in einen Satz von utility-Methoden):
UIImage
, das macht so viel mehr Sinn als das, was ich hier getan habe.Mache ich etwas ähnliches in meiner app.
Dann erstellen Sie eine neue image-Bestimmung der Proportionen. Ersetzen Sie "Bild" mit der ICO-Datei, die Sie bekommen von Amazon.
Nicht genug karma noch zu kommentieren Antworten, aber ich hatte guten Erfolg mit bbrandons code oben.
Habe ich bekommen, eine ganze Reihe von Warnungen auf der Konsole an, wenn in Bezug auf bytes pro Zeile Einstellung nicht hoch genug, nach der Lektüre Antworten auf diese post ich landete Einstellung 0 kann das system bestimmen den richtigen Wert.
zB:
kCGImageAlphaNone
also, für ein RGB-Farbraum, gibt es immer vier Komponenten (drei-Farben plus alpha). Das ist 1×4=4 bytes pro pixel. Also, er und Sie sollten die Multiplikation der Breite (Pixel pro Zeile), die durch 4, nicht 3. Vorbei 0 es ist nicht dokumentiert, zu arbeiten, so sollten Sie wahrscheinlich nicht auf Sie verlassen und sollte entweder nicht zu verwenden, die trick-oder-Datei eine Dokumentation bug-Fragen, für die es, dokumentiert zu werden: bugreport.apple.comHier ist, wie ich es Tat. Diese Technik stellt sicher, dass die text-und detail-Beschriftungen passend Links:
Ich weiß nichts darüber, wie ico-Dateien arbeiten, so ist es vielleicht möglich, handlich extrahieren Sie die 16x16 Bild und benutzen, aber ich habe keine Ahnung, wie.
Soweit ich bin mir bewusst, es ist nicht möglich, alle nützlichen Eigenschaften für das Bild in einem generischen
UITableViewCell
. Der einfachste Weg (immer noch chaotisch, vor allem, wenn Sie neu ist) zu skalieren, dass alles nach unten 16x16, wäre die UnterklasseUITableViewCell
, geben Sie es einUIImageView
immer die Bildgröße Blick auf 16x16, und legen Sie seine contentMode zuUIViewContentModeAspectFit
.Habe ich geändert, andere' Menschen-Kategorie, um alle Bilder besetzen die gleiche Breite(sichtbreite), OHNE SKALIERUNG: