Xcode-Schnittstellenerstellung. Wie unterscheiden sich diese Autosizing-Maskeneinstellungen?

8

Ich bin jetzt ziemlich zufrieden damit, Autosizing-Masken in IB zu verwenden, aber es gibt zwei Autosizing-Einstellungen, von denen ich nicht weiß, wie sie sich unterscheiden sollen:

Einstellung 1
Autosizing mit beiden oberen und unteren Ankern http: // dl .dropbox.com / u / 11270323 / Stapelüberlauf / Autosize-Maske-0.png

Einstellung 2
Autosizing mit nur upperper anchor http: //dl.dropbox .com / u / 11270323 / Stapelüberlauf / Autosize-Maske-1.png

Irgendein Kontext. Die UIView-Unterklasse, die diese Einstellungen verwendet, ist eine untergeordnete Unteransicht. Einstellung 1 gibt mir das gewünschte Verhalten - Unteransicht erweitert / kontrahiert mit der übergeordneten Ansicht - während Einstellung 2 auf nicht naheliegende Weise etwas anders ist.

Was ist der beabsichtigte Layoutunterschied zwischen diesen beiden Einstellungen?

Danke, Danke Doug

    
dugla 22.03.2012, 18:36
quelle

2 Antworten

22

Einstellung 1: Die Ansicht wird vertikal skaliert, sodass sowohl die Entfernung vom oberen Rand der Superansicht als auch die Entfernung vom unteren Rand der Superansicht erhalten bleiben. Im Grunde wird die Ansicht zusammen mit der Superview wachsen und schrumpfen; Wenn der Superview um 30 Pixel höher wird, wird diese Ansicht ebenfalls angezeigt.

Einstellung 2: Die Ansicht wird vertikal skaliert, so dass die Entfernung vom oberen Teil des Superview erhalten bleibt und die proportionale Höhe der Ansicht beibehalten wird. Grundsätzlich wird die Ansicht proportional mit der Superview wachsen; Wenn der Superview um 10% größer wird, wird diese Ansicht ebenfalls um 10% größer.

Beachten Sie, wie sich diese in der Praxis unterscheiden. Angenommen, der Superview ist 100 Pixel groß und die Unteransicht ist 60 Pixel hoch, mit einem 20 Pixel großen Puffer oben und unten. Jetzt ändern wir die Größe des Superviews auf 150px.

  • Einstellung 1 : Die Unteransicht wird vergrößert, um die 20px-Ränder beizubehalten und wird 110px groß.
  • Einstellung 2 : Die Unteransicht wird um 50% vergrößert (60px - & gt; 90px). Der obere Rand ist immer noch 20px, aber der untere Rand ist jetzt 40px.

Im Allgemeinen möchten Sie normalerweise das Verhalten in Einstellung 1. Sie könnten Einstellung 2 verwenden, wenn Sie eine Haupt- / Detailansicht oben / unten geteilt haben und beide Abschnitte proportional mit der Superansicht wachsen möchten. In diesem Fall würden Sie beiden Ansichten eine flexible Höhe zuweisen, indem Sie den oberen Rand der oberen Ansicht und den unteren Rand der unteren Ansicht fixieren.

    
BJ Homer 22.03.2012, 18:50
quelle
0

BJs Antwort ist wirklich großartig. Aber ich denke, sein Beispiel ist falsch.

  

Nehmen Sie an, die Superansicht ist 100 Pixel groß und die Unteransicht ist 60 Pixel groß   ein 20px Puffer oben und unten. Jetzt ändern wir die Größe der Vorschau auf   150px groß.

So ist für Einstellung 2 der obere Rand zweifellos immer noch 20px, aber die Unteransicht und der untere Rand sollten beide um (150 - 20) / (100 - 20) = 62,5% wachsen. Die Subview-Höhe wird 97.5px, und der untere Rand ist jetzt 32.5px.

Mit anderen Worten, das Verhältnis der Unteransichtshöhe zum unteren Rand sollte in diesem Fall erhalten bleiben.

    
ZLN 14.02.2016 06:42
quelle