Benutzerdefinierte UIAlertController-Schriftart funktioniert nicht.
Der folgende Code ist eine Funktion ShowActionSheetAsync
, show ActionSheet
.
An dieser Stelle möchte ich die Schriftart von ActionSheet
ändern. Ich habe mehrere Möglichkeiten ausprobiert, aber es hat nicht gut funktioniert. Gibt es eine gute Lösung?
Erster Versuch Der folgende Code funktioniert nicht richtig.
Wenn ich den Code auf [Block 1]
oder [Block 2]
Wenn ich den Code auf [Block 3]
ActionSheet
. Ab dem zweiten Mal funktioniert es nicht
UILabel.AppearanceWhenContainedIn(typeof(UIActionSheet)).Font
= UIFont.FromName(StyleResources.MediumFontName, 20);
Der zweite Versuch Der folgende Code funktioniert auch nicht richtig.
Wenn ich den Code auf [Block 2]
Wenn ich den Code auf [Block 3]
cancel
FindDescendantViews<UILabel>()
ist eine Erweiterungsmethode für UIView
und gibt alle untergeordneten Ansichten des entsprechenden Typs zurück.
UIAlertController
UILabels
Schriftart und Farbe können über KVC mit der Taste attributedTitle
eingestellt werden. Benutze dies in [Block 3]
Es ist nicht erlaubt, Standard-Dinge eines UIAlertControllers entweder abzuleiten oder zu ändern. Sie müssen eine benutzerdefinierte Ansicht dafür erstellen.
Ich habe hier die Lösung. Ich habe einen benutzerdefinierten AlertThemeConfigurator erstellt, der rekursiv alle Subviews durchsucht, die nach UILabels suchen, und setzt dann den themed attributedText für den Titel, die Nachricht und verschiedene Arten von Aktionen auf sie. Fühlen Sie sich frei, die attributierten Strings passend zu stylen.
%Vor%Um es zu präsentieren, rufen Sie
%Vor%Tags und Links c# ios xamarin.ios uialertcontroller