Alignment UIImageView mit Aspect Fit
für meine UIImageView ich wähle Aspekt Passen (InterfaceBuilder), aber wie kann ich das ändern der vertikalen Ausrichtung?
InformationsquelleAutor der Frage Raegtime | 2010-07-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
[BEARBEITEN - dieser code ist ein bisschen verschimmelt aus 2011 und alle, aber ich incorporated @ArtOfWarefare mods]
Können Sie nicht tun, diese w/UIImageView. Habe ich eine einfache UIView-Unterklasse
MyImageView
enthält eine UIImageView. - Code unten.und
InformationsquelleAutor der Antwort XJones
Wenn Sie mit Storyboards erreicht werden kann dies mit Einschränkungen...
Zuerst ein UIView mit der gewünschten endgültigen Rahmen - /Randbedingungen. Hinzufügen eines UIImageView der UIView. Legen Sie die contentMode Aspekt zu Füllen. Stellen Sie die UIImageView-frame werden die gleichen Verhältnis, wie das Bild (dies vermeidet das Storyboard Warnungen später). Stecken Sie die Seiten, um die UIView mit standard-Randbedingungen. Pin den oberen ODER unteren Rand (je nachdem, wo Sie es wünschen ausgerichtet), um die UIView mit standard-Randbedingungen. Schließlich fügen Sie ein Seitenverhältnis Einschränkung der UIImageView (sicherstellen, dass Verhältnis wie das Bild).
InformationsquelleAutor der Antwort Michael Platt
Versuchen Einstellung:
Dieser arbeitete für mich.
InformationsquelleAutor der Antwort Jonathan Molina
Das ist ein bisschen tricky, da es keine option, um eine weitere Angleichung der Regeln, wenn Sie bereits eine ausgewählte Inhalte-Modus (
.scaleAspectFit
).Aber hier ist ein workaround zu diesem:
Müssen zuerst die Größe Ihrer Quelle Bild explizit von der Berechnung der Dimensionen (wenn es mal in einem
UIImageView
mitcontentMode = .scaleAspectFit
).Dann müssen Sie einfach rufen Sie diese Funktion auf Ihrem ursprünglichen Bild aus, indem Sie Ihre Bildansicht frame, und ordnen Sie das Ergebnis Ihrer
UIImageView.image
Eigenschaft. Auch stellen Sie sicher, dass Sie Ihre Bildansicht die gewünschtecontentMode
hier (oder sogar im Interface Builder)!InformationsquelleAutor der Antwort choofie
Ich verwendet UIImageViewAligned für das ändern der Ausrichtung von Bild-vielen Dank an den Entwickler
UIImageViewAligned
InformationsquelleAutor der Antwort Milap Kundalia
Ich weiß, dies ist ein Alter thread, aber ich dachte, ich würde teilen, was ich Tat, um ganz einfach die region abgeschnitten von der Oberseite zu der Unterseite des Bildes view im Interface Builder, falls jemand das gleiche problem hatte ich auch Tat. Ich hatte eine UIImageView, gefüllt von meiner ViewController, und versuchte der Spitze bleiben die gleichen, unabhängig von der Größe des Geräts Bildschirm.
Habe ich das retina 4 Formfaktor (Editor->Anwenden der Retina-4-Form-Factor).
Ich steckte die Höhe und Breite.
Nun, wenn der Bildschirm ändert seine Größe, die UIImageView ist eigentlich die gleiche Größe haben, und die view-controller nur clips was ist aus dem Bildschirm. Die Rahmen Ursprung bleibt bei 0,0, also unten und rechts vom Bild abgeschnitten werden, nicht die oberen.
Hoffe, das hilft.
InformationsquelleAutor der Antwort GLee
Können Sie es tun, indem Sie zuerst skalieren und dann die Größe.
Das, was hier zu erwähnen ist, dass ich bedingt durch die Höhe. Ich meine , ich hatte das Bild von 34px hoch und egal wie Breite.
So erhalten Sie das Verhältnis zwischen dem eigentlichen Inhalt, Höhe und die Höhe der Ansicht ( 34 px ) und dann skalieren der Breite zu.
Hier ist, wie ich es gemacht habe:
Hoffe, das hilft.
InformationsquelleAutor der Antwort George
Ich dies Problem gelöst, indem bilden von Unterklassen UIImageView und überschreiben der setImage: Methode. Die Unterklasse würde zuerst speichern Sie die ursprünglichen Werte für Herkunft und Größe, also könnte es das original-set-Größe als bounding box.
Ich den Inhalt im Modus UIViewContentModeAspectFit. Innerhalb von setImage: ich schnappte mir die Bild-Breite zu Höhe-Verhältnis und dann verkleinert das Bild anzuzeigen, passen die gleichen Verhältnis wie das Bild. Nach dem ändern der Größe, habe ich meinen frame-Eigenschaften, um die Ansicht auf der gleichen Stelle es vorher war, und dann rief ich die super setImage:.
Diese Ergebnisse in einem Bild anzeigen, der Rahmen ist passend für das Bild genau, so dass der Aspekt passt, funktioniert und das Bild anzeigen von frame-Eigenschaften tun, die schweres heben, indem Sie die Bild-Ansicht, wo es sein sollte, um den gleichen Effekt zu erzielen.
Hier finden Sie den code, den ich verwendet:
Erste, und ich finde es Recht nützlich im Allgemeinen, ist eine Kategorie UIView, die macht es einfach, legen Sie die frame-Eigenschaften auf einen Blick über die Eigenschaften wie Links, rechts, oben, unten, Breite, Höhe, usw.
UIImageView+FrameAdditions
Dies ist die Unterklasse von UIImageView. Es ist nicht vollständig getestet, aber es sollte auf die Idee kommen über. Dies könnte erweitert werden, um Ihren eigenen neuen Modi für die Ausrichtung.
BottomCenteredImageView
InformationsquelleAutor der Antwort slemke
Ausrichtung eines scale-to-fit-Bild-verwenden Sie auto-layout". Beispiel Rechtsbündig Bild nach dem scale-to-fit-in UIImageView:
Ihrem Aspekt passen skalierte Bild ist nun Rechtsbündig in der UIImageView
Ändern Sie die Einschränkungen auszurichten anders in der Bildansicht.
InformationsquelleAutor der Antwort pizzamonster