2016-08-11 7 views
0

Ich möchte eine dynamische Bildansicht erstellen, die vom Bildverhältnis im Inneren abhängen kann (Bildverhältnis ist anders). Und die imageView-Breite folgt der Bildschirmbreite (oder der tableView-Breite), die Höhe des Bildes wird durch das Bild nach innen angepasst. Mein Storyboard sieht wie folgt aus: enter image description hereImageView hängt von der Bildgröße ab, aber nicht Fixed ImabeView

enter image description here Der Imageview-Modus Set Aspect Fit. Wie kann die Bildbreite bei TableView (oder Bildschirmbreite) gleich sein? Und um die Größe des Bildes und der Tabelle zu ändern Größe ?? (keinen gelben Rand verlassen)

Antwort

0

Ich schlage vor, Sie fügen eine Y-Einschränkung, z. Verwenden Sie die Pinnwand, um den vertikalen Abstand zur oberen Layoutführung zu beschränken, und verwenden Sie dann die Steuerzange für das Ansichtscontrollersymbol, um imageView horizontal zu zentrieren. Wenn Sie dann das Bild für die imageView festlegen, sollte es automatisch auf die Größe der Das Bild ist so, dass Sie keine Einschränkungen für die Größe oder das Seitenverhältnis festgelegt haben. Wenn Sie möchten, können Sie eine Einschränkung festlegen, die besagt, dass die Höhe in der Tabellenansicht stets gleich groß sein soll. Dies kann jedoch dazu führen, dass das Bild gestreckt erscheint, wenn Sie das Seitenverhältnis nicht festlegen.

+0

Ich mache, was Sie gesagt haben: Schritt1: Verwenden Sie die Pinnwand, um den vertikalen Abstand zur oberen Layout-Anleitung zu beschränken. Schritt2: zentrieren Sie das imageView horizontal Schritt3: legen Sie das Bild für das BildView automatisch auf die Größe des Bildes Größe ändern Schritt4 (optional): legen Sie eine Einschränkung zu sagen Sie immer eine gleiche Höhe aus der Tabellenansicht Kann ich fragen, welchen Ansichtsmodus ich wählen soll? Ich habe "Scale To Fit" gewählt, als ich das Bild gewählt habe, dessen Breite> Höhe, Es sieht gut aus. Aber wenn ich das Bild mit der Höhe> Breite wähle, dann sieht das ursprüngliche Bild seltsam aus. http://imgur.com/a/o6ARo –

+0

Ah, basierend auf Ihrem Beispiel würde ich empfehlen, dass Sie keine x-Einschränkungen hinzufügen, außer "horizontal zentrieren", da dies zu einer Bilddehnung führen kann. Wählen Sie nicht "Scale To Fit", aber wenn Sie viele verschiedene Bilder verwenden wollen, verwenden Sie das Auto-Layout (soweit ich weiß) gibt es keine Möglichkeit, sie alle gleich groß zu machen und alle sehen gut aus, es sei denn Sie fügen programmgesteuert Einschränkungen basierend auf der Bildgröße hinzu. Ich kann dir dabei helfen, wenn du willst. – RufusV

+0

Danke! Ich legte meine Demo auf die Dropbox https://www.dropbox.com/s/m3qr6uc2bqmms7n/ImageViewDemo.zip?dl=0 und es gibt einige Bilder in den Assets.Some von ihnen w> h, andere h> w . –

1

Fixieren Sie nicht die Höhe und Breite von imageView. Durch die Verwendung von Constraints wird nur die x, y-Position festgelegt, die Größe wird entsprechend der Bildgröße automatisch angepasst.

+0

Nachdem ich den Aspekt 4: 3 gelöscht und versucht.Es sieht so aus: http: //imgur.com/a/o6ARo Immer noch etwas falsch ... sieht seltsam aus –

Verwandte Themen