Ich verwende SDWebImage zum Anzeigen von Bildern in Zellen. Aber es ist perfekt auf Frame von UImageView, die ich in Code unten mache:
%Vor%Mein UIImageView ist Größe 50x50.
Zum Beispiel ist das Bild von der URL die Größe 990x2100 und mein Bild wird nicht gut im angegebenen Frame angezeigt. In diesem Fall, wenn die Höhe größer ist, möchte ich mein Bild mit einem passenden Höhenverhältnis skalieren, um die Breite 50 zu erreichen.
Gibt es eine Möglichkeit, die Größe eines Bildes von einer URL aus zu überprüfen, ohne es herunterzuladen und Speicher auf schreckliche Weise zuzuordnen?
Versuchen Sie, mit den verschiedenen Optionen von contentMode zu spielen, um das gewünschte Aussehen zu erhalten. Ein Beispiel könnte sein cell.shopImageView.contentMode = UIViewContentModeScaleAspectFit;
Das wird nur das Bild passen, aber wird nicht die Größe der Bildansicht ändern.
Hier sind Ihre Optionen für contentMode: UIViewContentModes
Eine Alternative könnte in etwa so aussehen:
NSData *data = [[NSData alloc]initWithContentsOfURL:URL];
UIImage *image = [[UIImage alloc]initWithData:data];
CGFloat height = image.size.height;
CGFloat width = image.size.width;
Sie können Ihre imageView-Höhe / -Breite dann abhängig vom Verhältnis der Höhe / Breite des Bildes einstellen.
Sie können diese Daten aus dem URL-Header abrufen, in Swift 3.0 verwenden Sie den Code
%Vor%Ich weiß nicht, wie Sie die Größe Ihres Bildes aus der URL ermitteln können, ohne das Bild herunterzuladen.
Aber ich kann Ihnen ein Code-Snippet zur Verfügung stellen, um Ihren UIImageView-Frame proportional zu machen, nachdem das Bild heruntergeladen wurde.
%Vor%Wenn Sie die oben genannte Methode zum Herunterladen von Bildern verwenden, wird Ihre Benutzeroberfläche blockiert. Also bitte vermeide es.
%Vor%Da Sie SDWebImage verwenden, wird es wahrscheinlich einige spezielle Methoden geben, um das Bild zuerst herunterzuladen. Sie können diese Methode also verwenden, um das Bild herunterzuladen, anstatt die UIImageView-Kategorien-Methode wie oben zu verwenden.
Nachdem Sie das Bild heruntergeladen haben. Versuchen Sie etwas wie unten.
Code-Snippet
Nehmen Sie an, das Bild wird heruntergeladen und das Objekt ist 'theImage' und 'imageView' als Ihre Zellbildansicht
%Vor%Tags und Links ios uiimageview uiimage nsurl sdwebimage