2012-05-05 4 views
6

Ich mache eine App für OS X und ich merke, wie nützlich das neue Constraint-Feature im Interface Builder ist (der natürlich jetzt in Xcode eingebaut ist). Es ist so nützlich und dynamisch in der Tat, dass ich in Frage stelle, ob ich eine minimale Fenstergröße einstellen sollte oder nicht oder nur auf die Einschränkungen meiner Fenster angewiesen bin, um die Minima und Maxima selbst einzustellen.Sollte ich View Constraints oder minimale Fenstergröße verwenden?

Ich habe das Gefühl, dass OS X minimale und maximale Fenstergrößen mit anderen Dingen außer der Begrenzung der Fenstergröße in irgendeiner Weise in Betracht zieht, und dass es nützlich sein könnte, die Minima und Maxima dafür zu setzen, aber ich habe auch Lust Es könnte ein guter Stil sein, sich auf die Beschränkungen zu verlassen, um die minimalen und maximalen Fensterhöhen aufgrund ihres dynamischen Verhaltens und aller dynamisch zu setzen. Wenn ich z. B. beschließe, die Mindestbreite eines Steuerelements mit Einschränkungen zu ändern, muss ich mir keine Sorgen darüber machen, dass auch die Mindestbreite des Mindestfensters geändert wird.

Ein weiteres, noch entscheidenderes Beispiel für die Vorteile von Einschränkungen bei der Festlegung der minimalen und maximalen Fenstergröße ist, dass die betroffenen Steuerelemente in meiner Anwendung ihre Größenbeschränkungen dynamisch ändern können, wenn der Benutzer beispielsweise die Textgröße ändert. aber eine statisch festgelegte minimale und maximale Fenstergröße würde dieses dynamische Verhalten ruinieren.

Noch einmal, alle diese Vorteile sollten auch in Betracht gezogen werden, dass OS X minimale und maximale Fenstergrößen in irgendeiner Weise berücksichtigt und dass es aus diesem Grund sinnvoll sein kann, die Minimal- und Maximalwerte festzulegen ; Ich bin nur nicht sicher wenn OS X berücksichtigt sie, und wenn sie es tun, wie es verwendet sie.

Ich habe die Dokumentation von Apple durchgesehen und kann nichts finden, das eine befriedigende Antwort liefert.

Antwort

2

In einer Situation wie dieser ist es am besten, es selbst auszuprobieren. Es dauerte nicht länger als zwei Minuten, um eine neue Anwendung mit einem einzigen Fenster und einigen Steuerelementen zu erstellen. Sie müssen nicht überhaupt keinen Code hinzufügen, wenn Sie nur mit einem skalierbaren Fenster spielen mögen:

window 1

Dieses Fenster hat keine Mindestgröße und keine Einschränkungen, und das Problem ist sofort offensichtlich. Sie können die Größe des Fensters, so dass es wie folgt aussieht:

window 2

einige Einschränkungen zwischen den Schaltflächen zeigt das Versprechen hinzu, dass Einschränkungen bieten. Jetzt sieht das Fenster wie dieses an seiner kleinsten Größe:

window 3

Ein paar weitere Einschränkungen auf dem Etikett schließlich das gewünschte Ergebnis gab:

window 4

Das ist großartig, aber es dauerte ein wenig der Arbeit dorthin zu gelangen. Ich habe keine vollständigen Einschränkungen hinzugefügt - eine vertikale Einschränkung zwischen den beiden rechten Schaltflächen wäre überflüssig gewesen, da zwischen den Schaltflächen auf der linken Seite bereits eine vorhanden ist. Für ein Fenster mit vielen Steuerelementen könnte das Einrichten von genügend Beschränkungen, um alle Ansichten abzudecken, wie folgt aussehen: a) sehr nützlich und lohnend oder b) ein Schmerz in der Pobacke und von geringem zusätzlichen Wert. Es hängt von Ihrer Situation ab. Ein einfacheres Schema besteht darin, einfach die Höhen der Steuerelemente, die sich überlappen (zwei Schaltflächen und die Beschriftung), und die gewünschten Abstände zwischen ihnen zu addieren und diese als Mindesthöhe für das Fenster festzulegen.

Ich kann jede Strategie sehen, die nützlich ist, abhängig vom Fensterinhalt. Tatsächlich glaube ich nicht, dass es sich wirklich um zwei separate Strategien handelt. Das Festlegen der minimalen Fenstergröße ist nur eine weitere Art von Einschränkung, die Sie hinzufügen. Zum Beispiel kann es eine Größe geben, unter der Ihr Fenster nur albern oder nicht sehr nützlich wäre, so dass Sie die minimale Fenstergröße auf diese Dimensionen festlegen könnten. Gleichzeitig sollten Sie möglicherweise Einschränkungen zwischen Schaltflächen festlegen, um überlappende Steuerelemente in lokalisierten Versionen zu verhindern (z. B. werden deutsche Namen häufig sehr lang).

Verwandte Themen