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.
Haben Sie die Steuerelemente für die Größenanpassung im Größeninspektor überprüft? – Wienke
@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
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