2012-04-12 11 views
5

Wenn ich einen Knopf an der oberen linken Seite des Fensters platzieren, es richtet genau wie ich erwarten würde:Wie richte ich eine Ansicht an der oberen linken Seite eines Fensters aus?

http://stuf.ro/Button.png

Es ist auch nicht mit der Fenstergröße ändern zusammen, was gut ist. Wenn ich versuche, aber das Gleiche mit einer benutzerdefinierten Ansicht zu tun, es fügt automatisch Einschränkungen nach unten und nach rechts, die die Ansicht mit der Fenstergröße ändern entlang machen:

http://stuf.ro/View.png

Wie kann ich loswerden von diesen? Ich möchte, dass die Größe der Ansicht nie geändert wird, und ich möchte, dass sie wie ein Knopf an der oberen linken Seite des Fensters angeheftet wird.

Wenn ich versuche, die Abhängigkeit auszuwählen und die Rücktaste zu drücken, passiert nichts. Die Option "Löschen" im Bearbeitungsmenü ist ebenfalls deaktiviert.

+0

Haben Sie die Steuerelemente für die Größenanpassung im Größeninspektor überprüft? – Wienke

+0

@Wienke, ja, ich habe sie überprüft. Ich habe jeden Knopf dort und im Attributinspektor für jede Einschränkung gedreht, aber ich konnte das gewünschte Verhalten nicht erreichen. – rid

+0

Wirklich? Ich habe es gerade getestet, und durch Entfernen der rechten Strebe und der horizontalen Trage kann ich die Breite einer Unteransicht einfrieren. Beachten Sie, dass die Steuerelemente in Ihren Screenshots von denen in Xcode 4 abweichen. Oder haben Sie möglicherweise Code hinzugefügt, der die Attribute für die automatische Größenanpassung für diese Ansicht angibt? Das würde alles übertrumpfen, was Sie im visuellen Layout tun. – Wienke

Antwort

9

Ihre Ansicht wird verkleinert, da Einschränkungen bestehen, die darauf hinweisen, dass der darüberliegende Raum unterhalb und links von ihm und rechts davon festgelegt werden muss. Dies sind die Linien, die Sie im Screenshot sehen können. Die einzige Möglichkeit, diese Einschränkungen beim Anpassen der Fenstergröße zu erfüllen, besteht darin, dass die Größe der Ansicht geändert wird.

Sie können die Einschränkungslinien auswählen, um sie zu ändern oder zu löschen. Sie könnten denken, Sie könnten die darunter und rechts löschen, und Ihre Ansicht muss nicht mehr die Größe ändern, um die verbleibenden Einschränkungen zu erfüllen, aber das funktioniert nicht. Die Ansicht benötigt eine (Menge von) Constraints, die sowohl die Größe als auch den Abstand angeben: Wenn die (automatisch erstellten) Abstandseinschränkungen auf beiden Seiten enthalten sind, bedeutet das Größe, aber wenn Sie eine davon loswerden, wird die Größe nicht mehr angegeben. (Deshalb können Sie automatisch erstellte Einschränkungen nicht entfernen, die als schmale blaue Linien in der Ansicht und mit violetten Symbolen in der Dokumentkontur angezeigt werden.)

Dies ist kein Problem für die Schaltfläche weil Buttons wissen, wie man sich selbst dimensioniert, und IB weiß, wie Buttons sich selbst bestimmen. IB weiß nichts von Ihrer benutzerdefinierten Ansicht, daher müssen Sie die Einschränkungen selbst festlegen. Wählen Sie bei ausgewählter Ansicht "Editor"> "Pin"> "Breite", um eine Breitenbeschränkung zu erstellen. Dies erzeugt sowohl eine Breiteneinschränkung als auch die vorhandenen Abstandseinschränkungen in Benutzereinschränkungen (im Gegensatz zu automatischen Einschränkungen) - sie erscheinen als durchgezogene Linien und haben blaue Symbole in der Dokumentkontur.

Jetzt können Sie die Abstandsbeschränkung auf der rechten Seite auswählen und löschen, und Ihre Ansicht behält ihre Breite und bleiben Sie nach links. Wiederholen Sie den Vorgang für Höhe und Leerraum und Ihre Ansicht bleibt oben links und ändert nicht die Größe.

Sie können mehr über das neue Auto-Layout-System in Apple's guide lesen.

+0

Wie lösche ich sie? Ich habe versucht, sie auszuwählen und die Rücktaste zu drücken, aber es ist nichts passiert. Die Frage wurde aktualisiert. – rid

+0

Ich habe vergessen, Sie können nicht einfach die automatisch erstellten Einschränkungen löschen. Ich habe die Antwort bearbeitet, um zu erklären, warum und was zu tun ist. – rickster

0

Wählen Sie Ihre Ansicht. Gehen Sie zum "Datei-Inspektor" und deaktivieren Sie "Auto-Layout verwenden". D