user6005637
user6005637

Reputation:

Change title color in UIAlertController

I have two button but I just wanna change one to red.When I use the function below
it change all to red. I just want to change color of only one button. How can i do it?

alertController.view.tintColor = UIColor.redColor()

Upvotes: 6

Views: 12573

Answers (4)

Anbu.Karthik
Anbu.Karthik

Reputation: 82759

Swift

you need to use UIAlertActionStyle.Destructive for button text color in red

    let alert = UIAlertController(
    title: "Basic alert style",
    message: "Basic alert With buttons",
    preferredStyle: .alert )

    let Reset = UIAlertAction(
    title: "Reset",
    style: .destructive) { (action) in
    // do your stuff
    }

    let Cancel = UIAlertAction(
    title: "Cancel", style: .default) { (action) in
    // do your stuff
    }

    alert.addAction(Reset)
    alert.addAction(Cancel)

    present(alert, animated: true, completion: nil)

Objective-C

UIAlertController *alert = [UIAlertController
                          alertControllerWithTitle:@"Basic Alert style"
                          message:@"Basic Alert With Buttons"
                          preferredStyle:UIAlertControllerStyleAlert];

 UIAlertAction *Reset = [UIAlertAction 
        actionWithTitle:NSLocalizedString(@"Reset", @"Reset action")
                  style:UIAlertActionStyleDestructive
                handler:^(UIAlertAction *action)
                {
                  NSLog(@"Reset action");
                }];

UIAlertAction *Cancel = [UIAlertAction 
        actionWithTitle:NSLocalizedString(@"Cancel", @"Cancel action")
                  style:UIAlertActionStyleDefault
                handler:^(UIAlertAction *action)
                {
                  NSLog(@"Cancel action");
                }];

[alert addAction:Reset];
[alert addAction:Cancel];
[self presentViewController:alert animated:YES completion:nil];

output

enter image description here

for additional Information see this

Upvotes: 3

Dhaval H. Nena
Dhaval H. Nena

Reputation: 4120

    let alertController = UIAlertController(title: title, message: message, preferredStyle: .actionSheet)

alertController.setValue(NSAttributedString(string: title, attributes: [NSFontAttributeName : UIFont.appFont_OpenSans_Regular(fontSize: 15),NSForegroundColorAttributeName : BLACK_COLOR]), forKey: "attributedTitle")
alertController.setValue(NSAttributedString(string: message, attributes: [NSFontAttributeName : UIFont.appFont_OpenSans_Regular(fontSize: 13),NSForegroundColorAttributeName : APP_COLOR_BLUE_1]), forKey: "attributedMessage")

Upvotes: 12

Phillip
Phillip

Reputation: 871

You can try this,

deleteAction.setValue(color, forKey: titleTextColor)

It works for me!

Upvotes: 7

sumit rathore
sumit rathore

Reputation: 135

only red Color is possible when you set UIAlertActionStyle.Destructive

Check this link

UIAlertController custom font, size, color

Upvotes: 2

Related Questions