How to change font size and color of UIAlertAction in UIAlertController

左心房为你撑大大i 提交于 2019-12-19 04:14:58

问题


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.


回答1:


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



回答2:


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"];
            }
        }
    }



回答3:


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"];



回答4:


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


来源:https://stackoverflow.com/questions/29382034/how-to-change-font-size-and-color-of-uialertaction-in-uialertcontroller

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!