2016-06-10 19 views
10

Wie zu bearbeiten UIAlertAction Textgröße und Farbe? Ich habe eine UIAlertController entsprechend genommen, wie man die Größe redigiert. Die i SMY-CodeWie UIAlertAction Text Schriftgröße und Farbe zu bearbeiten

UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"Do you wish to logout?" message:@"" preferredStyle:UIAlertControllerStyleAlert]; 
UIAlertAction *logOut = [UIAlertAction actionWithTitle:@"Log Out" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {}]; 

Jetzt liest ich meinen 'Ausloggen' will, um Text mit Schriftgröße 22 und grüner Farbe und in halbfett.

+1

Sie müssen hier die tintColor Siehe meine Antwort setzen: http://stackoverflow.com/a/37737212/1781087 – guidev

+1

Wie die Schriftgröße tintColor ändern kann ?? – naomi

+0

[controller.view setTintColor: [UIColor yellowColor]]; um die Tönungsfarbe zu ändern. –

Antwort

1

Das Ändern der Farbe ist ziemlich einfach.

Sie könnten nur die TintColor der zugrunde liegenden Ansicht ändern, aber aufgrund eines bekannten Fehlers in iOS 9 (https://openradar.appspot.com/22209332) wird die TintColor durch die TintColor des Anwendungsfensters überschrieben.

Sehen Sie meine vollständige Antwort an: How to change tint color of UIAlertController


Sie nicht die UIAlertController Schriftart ändern sollte. Doch es kann noch getan werden, siehe this answer

+0

was ist mit Schriftgröße? – naomi

0

Verwenden NSMutableAttributedString die Schriftgröße und Farbe festgelegt, dies unter Code verwenden,

UIAlertController *controller = [UIAlertController alertControllerWithTitle:@"Do you wish to logout?" message:@"" preferredStyle:UIAlertControllerStyleAlert]; 

NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Do you wish to logout?"]; 

[hogan addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:50.0] range:NSMakeRange(24, 11)]; 

[hogan addAttribute:NSForegroundColorAttributeName value:[UIColor redColor] range:NSMakeRange(0,35)]; 

[controller setValue:hogan forKey:@"attributedTitle"]; 

UIAlertAction *logOut = [UIAlertAction actionWithTitle:@"Log Out" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {}]; 

hoffen, seine hilfreich

+0

Frage ist, UIAlertAction Schriftgröße und Farbe zu aktualisieren. – kaushal

-1

Try this:

UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Do you wish to logout?" message:@"abcd" preferredStyle:UIAlertControllerStyleActionSheet]; 

NSMutableAttributedString *xyz = [[NSMutableAttributedString alloc] initWithString:@"pqrs"]; 

[xyz addAttribute:NSFontAttributeName 
       value:[UIFont systemFontOfSize:30.0] 
       range:NSMakeRange(20, 15)]; 
[alert setValue:xyz forKey:@"attributedTitle"]; 



UIAlertAction *logout = [UIAlertAction actionWithTitle:@"logout" 
             style:UIAlertActionStyleDefault 
             handler:^(UIAlertAction *action){ 
                //your code for handling this 
}]; 
UIImage *Image = [UIImage imageNamed:@"yourImage"]; 
[logout setValue:accessoryImage forKey:@"image"]; 
+0

Es funktioniert nicht, es stürzt meine App ab. –

+0

Was ist der Fehler, der aufgetreten ist? @vanderVyver –

+3

@LianvanderVyy es wird Ihre App zum Absturz bringen, wenn das Bild wahrscheinlich zu groß ist. Ich habe dies behoben, indem ich die Größe des Bildes skaliert habe, bevor ich es auf den Schlüssel "image" setze. –

23

Sie können die Textfarbe mit

aktualisieren 210

Es gibt keine effiziente Möglichkeit, die Schriftgröße zu aktualisieren. Ich empfehle Ihnen, die Standardschriftgröße zu verwenden.

UIAlertAction title label ist private Variable und nicht direkt zugänglich. Label wird in die private Ansichtshierarchie mit 3 Ebenen eingefügt. Das Anzeigen von Logout-Aktionen mit größeren Schriften ist sinnvoll für die App.

Es gibt viele Open-Source-Lösung available.I wird this

+1

Die App-Anforderung meines Kunden, LogOut-Schriftart mit Größe 17 und Gewicht Semibold anzuzeigen. – naomi

+0

UIAlertAction-Titel-Label ist private Variable und nicht direkt zugänglich.Label wird in die private Ansichtshierarchie mit 3 Ebenen eingefügt. So aktualisiert es mit Hack-Weg wird Fehler für den Benutzer (UI wird nicht nach dem Zufallsprinzip zu aktualisieren, die später schwer zu beheben). Das Anzeigen von Logout-Aktionen mit größeren Schriften ist sinnvoll für die App. Es gibt viele Open-Source-Lösungen. Ich habe eine in meiner Antwort erwähnt. – kaushal

+0

Ich werde vorschlagen, mit dieser Lösung zu gehen ist es Kategorie über UIAlertView Controller. und haben eine gute Bewertung in einer bestimmten Zeitspanne. – kaushal

0

Für Swift und neu schreiben zu Extension-Methode zu versuchen, empfehlen. Basierend auf kaushal's answer.

import UIKit 

extension UIAlertAction { 

    func setTextColor(_ color: UIColor) { 
     self.setValue(color, forKey: "titleTextColor") 
    } 
} 

// Ex: 
// let act = UIAlertAction(...) 
// act.setTextColor(UIColor.red)