2016-04-20 5 views
0

Ich versuche, UIImage zu verkleinern, um genau die gleiche Größe meiner UIView zu passen, Tho bin ich nicht sicher, was die genauen Beziehungen zwischen ihnen ist. Dies ist die Art und Weise, wie ich überprüfe, ob mein UIImage größer als meine UIView ist.Understanding UIImage size -Eigenschaft im Vergleich zu UIView frame size Eigenschaft

let rect = preview.frame 
if croppedImage.size.width * croppedImage.scale > rect.size.width * UIScreen. 
{ 
//RESIZE 
} 

Ist das der richtige Weg? Sprechen die Werte in den gleichen Dimensionen?

Antwort

2

Vom UIImageclass reference, die sich auf die scale Eigenschaft:

Wenn Sie die logische Größe des Bildes (gespeichert in der size Eigenschaft) durch den Wert in dieser Eigenschaft multiplizieren, erhalten Sie die Dimensionen der Bild in Pixel.

Vom UIWindowclass reference unter Bezugnahme auf seine eigenen scale Eigenschaft:

Dieser Wert spiegelt den Skalierungsfaktor aus dem Standard logisch in das Gerät Koordinatenraum Koordinatenraum von dieser Bildschirm konvertieren benötigt. Der Standardraum für logische Koordinaten wird mit Punkten gemessen. Bei Anzeigen mit Standardauflösung beträgt der Skalierungsfaktor 1,0 und ein Punkt entspricht einem Pixel. Bei Retina-Anzeigen ist der Skalierungsfaktor 2,0 und ein Punkt wird durch vier Pixel dargestellt.

Sie sollten also croppedImage.size.width * croppedImage.scale mit rect.size.width * UIScreen.scale vergleichen können. Sie können jedoch in Erwägung ziehen, Ihre UIImage in eine UIImageView zu platzieren. Dann können Sie die frame Eigenschaft auf dem UIImageView zum Rahmen Ihrer Ansicht einstellen und voila! (Beachten Sie jedoch, dass dies Ihr Bild strecken kann.)

+0

Hey Evan, danke für die Antwort! Ich stelle die Größe der UIIMageViw auf den gleichen Aspekt wie das Bild ein, also ist es in Ordnung :) Fazit, was ich getan habe, ist richtig? Vielen Dank! :) –