Rozhraní API pro vzhled v Xamarin. iOS

iOS umožňuje aplikovat nastavení vizuálních vlastností na úrovni statické třídy, nikoli na jednotlivých objektech, aby se změna projevila na všech instancích daného ovládacího prvku v aplikaci.

Tato funkce je k dispozici v Xamarin. iOS prostřednictvím statické Appearance vlastnosti u všech UIKit ovládacích prvků, které je podporují. Vizuální vzhled (vlastnosti, jako je barevný nádech a obrázek pozadí), je proto možné snadno přizpůsobit, aby vaše aplikace měla konzistentní vzhled. Rozhraní API pro zobrazení bylo zavedeno v iOS 5 a i když některé jeho části se v iOS 9 nepoužívá, je stále dobrým způsobem, jak v aplikacích pro Xamarin. iOS dosáhnout určitých stylů a efektů.

Přehled

iOS umožňuje přizpůsobit vzhled mnoha ovládacích prvků UIKit a zajistit, aby standardní ovládací prvky splňovaly značky, které chcete použít pro vaši aplikaci.

Existují dva různé způsoby, jak použít vlastní vzhled:

  • Přímo na instanci ovládacího prvku – můžete nastavit barvu odstínu, obrázek pozadí a umístění nadpisu (stejně jako u některých dalších atributů) v mnoha ovládacích prvcích, včetně panelů nástrojů, navigačních panelů, tlačítek a posuvníků.

  • Nastavení výchozích vlastností na základě statické vlastnosti – přizpůsobitelné atributy pro každý ovládací prvek jsou zpřístupněny prostřednictvím statické vlastnosti. Všechna vlastní nastavení, která použijete u těchto vlastností, budou použita jako výchozí pro libovolný ovládací prvek daného typu, který se vytvoří po nastavení vlastnosti.

Ukázková aplikace vzhledu znázorňuje všechny tři metody, jak je znázorněno na těchto snímcích obrazovky:

Ukázková aplikace vzhledu předvádí všechny tři metody

Od iOS 8 se proxy server pro vzhled rozšířil na TraitCollections. AppearanceForTraitCollection dá se použít k nastavení výchozího vzhledu pro určitou kolekci vlastností. Další informace si můžete přečíst v průvodci Úvod do scénářů .

Nastavení vlastností vzhledu

Na první obrazovce se třída statického vzhledu používá pro styly tlačítek a žlutých/oranžových prvků takto:

// Set the default appearance values
UIButton.Appearance.TintColor = UIColor.LightGray;
UIButton.Appearance.SetTitleColor(UIColor.FromRGB(0,127,14), UIControlState.Normal);

UISlider.Appearance.ThumbTintColor = UIColor.Red;
UISlider.Appearance.MinimumTrackTintColor = UIColor.Orange;
UISlider.Appearance.MaximumTrackTintColor = UIColor.Yellow;

UIProgressView.Appearance.ProgressTintColor = UIColor.Yellow;
UIProgressView.Appearance.TrackTintColor = UIColor.Orange;

Zelené styly elementů jsou nastaveny takto v ViewDidLoad metodě, která přepisuje výchozí hodnoty a statickou třídu ViewDidLoad :

slider2.ThumbTintColor = UIColor.FromRGB (0,127,70); // dark green
slider2.MinimumTrackTintColor = UIColor.FromRGB (66,255,63);
slider2.MaximumTrackTintColor = UIColor.FromRGB (197,255,132);
progress2.ProgressTintColor = UIColor.FromRGB (66,255,63);
progress2.TrackTintColor = UIColor.FromRGB (197,255,132);

Používání UIAppearance v Xamarin. Forms

Rozhraní API pro vzhled může být užitečné při stylování aplikace pro iOS v řešeních Xamarin. Forms. Několik řádků ve AppDelegate třídě může přispět k implementaci konkrétního barevného schématu, aniž by bylo nutné vytvořit AppDelegate.

Vlastní motivy a UIAppearance

iOS umožňuje, aby se mnoho vizuálních atributů ovládacích prvků uživatelského rozhraní používalo jako "tematické" s použitím rozhraní API UIAppearance k tomu, aby měly všechny instance určitého ovládacího prvku stejný vzhled. Toto je vystaveno jako vlastnost vzhledu v mnoha třídách ovládacích prvků uživatelského rozhraní, nikoli na jednotlivých instancích ovládacího prvku. Nastavení vlastnosti zobrazení ve Appearance vlastnosti static má vliv na všechny ovládací prvky daného typu v aplikaci.

Pro lepší pochopení konceptu zvažte příklad.

Chcete-li změnit konkrétní UISegmentedControl , aby měl purpurový odstín, odkazovali jsme na konkrétní ovládací prvek na naší obrazovce takto ViewDidLoad :

sg1.TintColor = UIColor.Magenta;

Případně nastavte hodnotu v panelu Vlastnosti návrháře:

Barevný nádech Oblast vlastností

Následující obrázek znázorňuje, že tato hodnota nastavuje odstín pouze v ovládacím prvku s názvem ' sz1 '.

Nastavení barevného nádechu jednotlivých ovládacích prvků

Aby bylo možné nastavit mnoho ovládacích prvků tímto způsobem, by bylo zcela neefektivní, takže můžeme nastavit statickou Appearance vlastnost na samotné třídě. To je vidět v následujícím kódu:

UISegmentedControl.Appearance.TintColor = UIColor.Magenta;

Následující obrázek ukazuje segmentované ovládací prvky s nastavenou plochou jako purpurovou:

Nastavení barevného nádechu ovládacího prvku vzhled

Appearance vlastnosti by měly být nastaveny na začátku v životním cyklu aplikace, například v FinishedLaunching události AppDelegate nebo v soubor viewcontroller před tím, než se zobrazí ovlivněné ovládací prvky.

Podrobnější informace najdete v úvodu k rozhraní API pro zobrazení .