Teilen über


Layoutoptionen in Xamarin.iOS

Es gibt zwei verschiedene Mechanismen zum Steuern des Layouts, wenn die Größe einer Ansicht geändert oder gedreht wird:

  • Autoizing – Der Autoizing-Inspektor im Designer bietet eine Möglichkeit zum Festlegen der AutoresizingMask Eigenschaften. Dadurch wird ein Steuerelement an den Rändern seines Containers verankert und/oder seine Größe korrigiert. Die automatische Größenanpassung funktioniert in allen Versionen von iOS. Dies wird unten ausführlicher beschrieben.
  • Autolayout – Ein in iOS 6 eingeführtes Feature, das eine differenzierte Kontrolle über die Beziehungen der UI-Steuerelemente ermöglicht. Sie ermöglicht die Steuerung der Positionen von Elementen relativ zu anderen Elementen auf der Entwurfsoberfläche. Dieses Thema wird im Autolayout mit dem Leitfaden für Xamarin iOS-Designer ausführlicher behandelt.

Automatische Größenanpassung

Wenn ein Benutzer die Größe eines Fensters ändert, z. B. wenn das Gerät gedreht wird und sich die Ausrichtung ändert, ändert das System automatisch die Größe der Ansichten innerhalb dieses Fensters entsprechend ihren Regeln für die automatische Größenanpassung. Diese Regeln können in C# mithilfe der AutoresizingMask Eigenschaft des UIView Oder im Eigenschaftenpad des iOS-Designers festgelegt werden, wie unten dargestellt:

Screenshot des Eigenschaftenpads des I O S-Designers.

Wenn ein Steuerelement ausgewählt wird, können Sie die Position und Abmessungen des Steuerelements manuell angeben sowie das Verhalten für die automatische Größenanpassung auswählen. Wie im folgenden Screenshot dargestellt, können wir die Federn und Federn im Autoisierungssteuerelement verwenden, um die Beziehung der ausgewählten Ansicht zum übergeordneten Element der Ansicht zu definieren:

Screenshot des Steuerelements für die automatische Größenanpassung im Eigenschaftenpad des I O S-Designers.

Durch das Anpassen einer Feder wird die Größe der Ansicht basierend auf der Breite oder Höhe der übergeordneten Ansicht geändert. Durch das Anpassen eines Struts wird die Ansicht Standard konstanten Abstand zwischen sich selbst und der übergeordneten Ansicht an diesem bestimmten Rand beibehalten.

Diese Einstellungen können auch im Code festgelegt werden:

textfield1.Frame = new RectangleF(15, 277, 79, 27);
textfield1.AutoresizingMask = UIViewAutoresizing.FlexibleRightMargin | UIViewAutoresizing.FlexibleBottomMargin;

Um die Einstellungen für die automatische Größenanpassung zu testen, aktivieren Sie verschiedene unterstützte Geräteausrichtungen in den Optionen des Projekts:

Automatisches Skalieren von Einstellungen

Im CodeBehind können wir den folgenden Code verwenden, wodurch die größe der beiden Textsteuerelemente horizontal geändert wird:

textview1.AutoresizingMask = UIViewAutoresizing.FlexibleWidth;
textfield1.AutoresizingMask = UIViewAutoresizing.FlexibleWidth;
imageview1.AutoresizingMask = UIViewAutoresizing.FlexibleTopMargin | UIViewAutoresizing.FlexibleLeftMargin;

Wir können die Steuerelemente auch mithilfe des Designers anpassen. Wenn Sie die unten dargestellten Struts auswählen, bleibt das Bild rechtsbündig, ohne am unteren Rand der Ansicht abgeschnitten zu werden:

Screenshot des Steuerelements für die automatische Größenanpassung, wobei links und unten ausgewählt ist.

Diese Screenshots zeigen, wie sich die Größe der Steuerelemente ändern oder sich neu positionieren, wenn der Bildschirm gedreht wird:

Screenshot eines mobilen Geräts, das im Hoch- und Querformat angezeigt wird, mit Text und Grafik angepasst.

Beachten Sie, dass sich die Textansicht und das Textfeld aufgrund der FlexibleWidth Einstellung auf die gleichen linken und rechten Seitenränder erstrecken. Das Bild hat den oberen und linken Rand flexibel, was bedeutet, dass es die unteren und rechten Seitenränder behält – das Bild wird beim Drehen des Bildschirms angezeigt. Komplexe Layouts erfordern in der Regel eine Kombination dieser Einstellungen für jedes sichtbare Steuerelement, um die Benutzeroberfläche konsistent zu halten und zu verhindern, dass Steuerelemente sich überlappen, wenn sich die Grenzen der Ansicht ändern (aufgrund einer Drehung oder eines anderen Größenänderungsereignisses).