How to change font size and color of UIAlertAction in UIAlertController

后端 未结 4 1466
孤独总比滥情好
孤独总比滥情好 2021-01-06 17:57

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\"

相关标签:
4条回答
  • 2021-01-06 18:02

    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"];
                }
            }
        }
    
    0 讨论(0)
  • 2021-01-06 18:03

    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)];
    
    0 讨论(0)
  • 2021-01-06 18:11

    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];
    
    0 讨论(0)
  • 2021-01-06 18:27

    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"];
    
    0 讨论(0)
提交回复
热议问题