Ronaldo.K
Ronaldo.K

Reputation: 303

How to change font size and color of UIAlertAction in UIAlertController

enter image description here

In the image above how to change the font size and color of "Done", "Some Other action"? and how to change the font size and color of "title", and "message"?

Thank you.

Upvotes: 3

Views: 17452

Answers (4)

Abhishek Thapliyal
Abhishek Thapliyal

Reputation: 3708

Simply do like this

    UIAlertAction * action = [UIAlertAction actionWithTitle:@"ACTION TITLE" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {

       // TODO : ACTION
    }];

    [action setValue:[UIColor redColor] forKey:@"titleTextColor"];
    [alertController action];

Upvotes: 1

jimrice
jimrice

Reputation: 452

This is from another stack overflow post but seems to work fine. Post found here.

UIAlertController *alertVC = [UIAlertController alertControllerWithTitle:@"Dont care what goes here, since we're about to change below" message:@"" preferredStyle:UIAlertControllerStyleActionSheet];
NSMutableAttributedString *hogan = [[NSMutableAttributedString alloc] initWithString:@"Presenting the great... Hulk Hogan!"];
[hogan addAttribute:NSFontAttributeName
          value:[UIFont systemFontOfSize:50.0]
          range:NSMakeRange(24, 11)];
[alertVC setValue:hogan forKey:@"attributedTitle"];



UIAlertAction *button = [UIAlertAction actionWithTitle:@"Label text" 
                                    style:UIAlertActionStyleDefault
                                    handler:^(UIAlertAction *action){
                                                //add code to make something happen once tapped
}];
UIImage *accessoryImage = [UIImage imageNamed:@"someImage"];
[button setValue:accessoryImage forKey:@"image"];

To change the color of the text with the following, adding it before the line setting [alertVC setValue:hogan forKey:@"attributedTitle"];

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

Upvotes: 7

Matthew Edwards
Matthew Edwards

Reputation: 11

I wasn't able to change the font, but you can change the font colour. From the 'hogan' example, changing the font colour on UIAlertAction:

[button setValue:[UIColor greenColor] forKey:@"titleTextColor"];

Upvotes: 1

Hoang Tuan Anh
Hoang Tuan Anh

Reputation: 41

change color a action in UIAlertController

SEL selector = NSSelectorFromString(@"_alertController");
if ([actionSheet respondsToSelector:selector])
{
    UIAlertController *alertController = [actionSheet valueForKey:@"_alertController"];

    if ([alertController isKindOfClass:[UIAlertController class]])
    {
        NSArray *arr = alertController.actions;
        for (int i = 0; i <arr.count; i ++) {
            UIAlertAction *alertAction = [arr objectAtIndex:i];
            if ([alertAction.title isEqualToString:@"Logout"]) {
                UIColor *color = [UIColor redColor];
                [alertAction setValue:color forKey:@"titleTextColor"];
            }
        }
    }

Upvotes: 4

Related Questions