Aracılığıyla paylaş


Xamarin.iOS'ta Görünüm API'si

iOS, görsel özellik ayarlarını tek tek nesneler yerine statik bir sınıf düzeyinde uygulamanıza olanak tanır, böylece değişiklik uygulamadaki bu denetimin tüm örneklerine uygulanır.

Bu işlev, Xamarin.iOS'ta onu destekleyen tüm UIKit denetimlerindeki statik Appearance bir özellik aracılığıyla kullanıma sunulur. Bu nedenle, görsel görünüm (renk tonu rengi ve arka plan görüntüsü gibi özellikler), uygulamanıza tutarlı bir görünüm kazandırmak için kolayca özelleştirilebilir. Görünüm API'si iOS 5'te kullanıma sunulmuştur ve bazı bölümleri iOS 9'da kullanım dışı bırakılmıştır ancak Xamarin.iOS uygulamalarında bazı stil ve temalı efektler elde etmek için hala iyi bir yoldur.

Genel bakış

iOS, standart denetimlerin uygulamanıza uygulamak istediğiniz markaya uygun olmasını sağlamak için birçok UIKit denetiminin görünümünü özelleştirmenize olanak tanır.

Özel görünüm uygulamanın iki farklı yolu vardır:

  • Doğrudan bir denetim örneğinde – araç çubukları, gezinti çubukları, düğmeler ve kaydırıcılar gibi birçok denetimde renk tonu rengini, arka plan görüntüsünü ve başlık konumunu (ve diğer bazı öznitelikleri) ayarlayabilirsiniz.

  • Görünüm statik özelliğinde varsayılanları ayarlayın; her denetim için özelleştirilebilir öznitelikler statik özellik aracılığıyla Appearance kullanıma sunulur. Bu özelliklere uyguladığınız tüm özelleştirmeler, özellik ayarlandıktan sonra oluşturulan bu türdeki tüm denetimler için varsayılan olarak kullanılır.

Görünüm örnek uygulaması, şu ekran görüntülerinde gösterildiği gibi üç yöntemi de gösterir:

Görünüm örnek uygulaması üç yöntemi de gösterir

iOS 8 itibarıyla Görünüm proxy'si TraitCollections'a genişletilmiştir. AppearanceForTraitCollection belirli bir özellik koleksiyonunda varsayılan görünümü ayarlamak için kullanılabilir. Bu konu hakkında daha fazla bilgiyi Görsel Taslaklara Giriş kılavuzundan okuyabilirsiniz.

Görünüm Özelliklerini Ayarlama

İlk ekranda, statik Görünüm sınıfı düğmelerin ve sarı/turuncu öğelerin stilini oluşturmak için kullanılır:

// 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;

Yeşil öğe stilleri, ViewDidLoad varsayılan değerleri ve Görünüm statik sınıfını geçersiz kılan yönteminde şöyle ayarlanır:

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);

Xamarin.Forms'da UIAppearance Kullanma

Görünüm API'si, Xamarin.Forms çözümlerinde iOS uygulamasının stili oluşturulurken yararlı olabilir. sınıfındaki AppDelegate birkaç satır, özel işleyici oluşturmak zorunda kalmadan belirli bir renk düzeninin uygulanmasına yardımcı olabilir.

Özel Temalar ve UIAppearance

iOS, belirli bir denetimin tüm örneklerini aynı görünüme sahip olmaya zorlamak için UIAppearance API'leri kullanılarak kullanıcı arabirimi denetimlerinin birçok görsel özniteliğinin "temalı" olmasını sağlar. Bu, denetimin tek tek örneklerinde değil, birçok kullanıcı arabirimi denetim sınıfında bir Görünüm özelliği olarak sunulur. Statik Appearance özellikte bir görüntüleme özelliğinin ayarlanması, uygulamanızda bu türdeki tüm denetimleri etkiler.

Kavramı daha iyi anlamak için bir örnek düşünün.

Belirli UISegmentedControl bir renk tonunu Magenta renk tonuyla değiştirmek için, ekranımızda aşağıdaki gibi belirli bir denetime başvururuz ViewDidLoad:

sg1.TintColor = UIColor.Magenta;

Alternatif olarak, Tasarım Aracı Özellikler panelindeki değeri ayarlayın:

Özellikler Bölmesi Renk Tonu

Aşağıdaki görüntüde, renk tonunun yalnızca 'sg1' adlı denetime ayarlandığını gösterilmektedir.

Tek tek denetim renk tonunu ayarlama

Bu şekilde birçok denetim ayarlamak tamamen verimsiz olur, bu nedenle bunun yerine sınıfın kendisinde statik Appearance özelliği ayarlayabiliriz. Bu, aşağıdaki kodda gösterilmiştir:

UISegmentedControl.Appearance.TintColor = UIColor.Magenta;

Aşağıdaki Görüntüde artık görünüm Magenta olarak ayarlanmış her iki kesimli denetim gösterilmektedir:

Görünüm denetimi renk tonunu ayarlama

Appearance özellikler, appDelegate'in FinishedLaunching olayı gibi uygulama yaşam döngüsünün erken aşamalarında veya etkilenen denetimler görüntülenmeden önce bir ViewController'da ayarlanmalıdır.

Daha ayrıntılı bilgi için Görünüm API'sine giriş bölümüne bakın.