Možnosti rozložení v Xamarin.iOS

Při změně velikosti nebo otočení zobrazení existují dva různé mechanismy pro řízení rozložení:

  • Automatické nastavení – Inspektor automatické změny velikosti v návrháři poskytuje způsob, jak nastavit AutoresizingMask vlastnosti. To umožní ukotvení ovládacího prvku na hranách jejich kontejneru a/nebo opravit jejich velikost. Automatická velikost funguje ve všech verzích iOSu. Toto je podrobněji popsáno níže.
  • Automatické rozložení – funkce představená v iOSu 6, která umožňuje jemně odstupňovanou kontrolu nad relacemi ovládacích prvků uživatelského rozhraní. Umožní řízení pozic prvků vzhledem k ostatním prvkům na návrhové ploše. Toto téma je podrobněji popsáno v automatickém rozložení pomocí průvodce Xamarin iOS Designer .

Automatická velikost

Když uživatel změní velikost okna, například když se zařízení otočí a orientace se změní, systém automaticky změní velikost zobrazení uvnitř tohoto okna podle pravidel automatické velikosti. Tato pravidla je možné v jazyce C# nastavit pomocí AutoresizingMask vlastnosti nebo UIView v oblasti vlastností v iOS Designeru, jak je znázorněno níže:

Screenshot shows the Properties Pad of the I O S designer.

Při výběru ovládacího prvku můžete ručně zadat umístění a rozměry ovládacího prvku a také zvolit chování automatické velikosti . Jak je znázorněno na následujícím snímku obrazovky, můžeme použít pružiny a vystružky v ovládacím prvku automatické velikosti k definování vztahu vybraného zobrazení k nadřazené:

Screenshot shows the Autosizing control in the Properties Pad of the I O S designer.

Úprava pružiny způsobí, že zobrazení změní velikost na základě šířky nebo výšky nadřazeného zobrazení. Když upravíte vstrut , bude zobrazení udržovat konstantní vzdálenost mezi sebou a jeho nadřazeným zobrazením na daném okraji.

Tato nastavení lze také nastavit v kódu:

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

Pokud chcete otestovat nastavení automatické velikosti, povolte v možnostech projektu různé podporované orientace zařízení:

Autosizing Settings

V kódu za sebou můžeme použít následující kód, který způsobí, že dva textové ovládací prvky změní velikost vodorovně:

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

Ovládací prvky můžeme také upravit pomocí Návrháře. Když vyberete vystružky, jak je znázorněno níže, obrázek zůstane zarovnaný doprava, aniž by byl oříznut v dolní části zobrazení:

Screenshot shows the Autosizing control with left and bottom selected.

Tyto snímky obrazovky ukazují, jak se ovládací prvky při otočení obrazovky změní nebo změní jejich umístění:

Screenshot show a mobile device display in portrait and landscape with text and graphic adjusted.

Všimněte si, že textové zobrazení i textové pole jsou roztaženy FlexibleWidth , aby se kvůli nastavení zachovaly stejné levé i pravé okraje. Obrázek má flexibilní horní a levý okraj, což znamená, že zachovává dolní a pravé okraje – při otáčení obrazovky zůstane obrázek v zobrazení. Složitá rozložení obvykle vyžadují kombinaci těchto nastavení na všech viditelných ovládacích prvcích, aby uživatelské rozhraní bylo konzistentní a aby se ovládací prvky při změně hranic zobrazení nepřekrývaly (kvůli obměně nebo jiné události změny velikosti).