2016-08-22 3 views
1

Ich habe eine benutzerdefinierte quadratische Ansicht, die nach Bedarf wachsen und verkleinern kann. Meine benutzerdefinierte Ansicht überschreibt nur drawRect, um den Inhalt zu rendern.Xcode Autolayout: am besten für Platz

Die enthaltene Ansicht ist ein Rechteck, aber kein Quadrat. Das Seitenverhältnis ändert sich je nach Ausrichtung und Typ des Geräts. Ich muss meine benutzerdefinierte Ansicht so anpassen, dass sie den maximalen Platz im Container beansprucht, aber das Seitenverhältnis 1: 1 beibehält.

Ich möchte die Einschränkungen in IB lieber als Code, wenn möglich. Ich habe folgende Einschränkungen:

  • Vertikale im Behälter
  • Horizontal Zentrierung im Behälter zentrierten
  • Seitenverhältnis (1: 1)
  • Inhaltsmodus
maßstäblich zu füllen gesetzt

Ich habe verschiedene Dinge ausprobiert, damit die benutzerdefinierte Ansicht in den Container passt, was zu IB-Layoutfehlern führt, zum Beispiel:

  • Breite < = Containerbreite
  • Höhe < = Behälterhöhe

ich keine der Größen gleich gesetzt, weil ich weiß nicht, ob der Behälter vertikal oder horizontal ist ...

Dies scheint wie eine grundlegende Aufgabe, aber ich kann das nicht herausfinden. Was ist der beste Weg, um ein Quadrat quadratisch zu gestalten?

Antwort

1

die Einschränkungen Halten Sie bereits haben, und fügen Sie neue Einschränkungen:

  • Breite und Höhe gleich der Superview, aber mit niedrigeren Prioritäten als das Seitenverhältnis Einschränkung
  • Breite und Höhe < = die Super Größe
0

ersten drei constraint recht., andere entfernen und die

    gesetzt
  • führende oder und
  • oben Hinter oder unten

Einschränkung

Wählen Sie nun die newely hinzugefügt Einschränkung Super und machen sie> = (größer oder gleich) auf 0

jetzt Sie müssen Ihrer Ansicht die Width- oder Heightbeschränkung geben, die sie in der Unteransicht genauso haben kann wie in der Scroll-Ansicht, oder Sie geben eine Breite von 320 für Ihre Ansicht an und machen sie auch größer oder gleich.

Verwandte Themen