Swift How to change UIAlertController's Title Color Swift How to change UIAlertController's Title Color xcode xcode

Swift How to change UIAlertController's Title Color


let attributedString = NSAttributedString(string: "Title", attributes: [    NSFontAttributeName : UIFont.systemFontOfSize(15), //your font here    NSForegroundColorAttributeName : UIColor.redColor()])let alert = UIAlertController(title: "", message: "",  preferredStyle: .alert)alert.setValue(attributedString, forKey: "attributedTitle")let cancelAction = UIAlertAction(title: "Cancel", style: .cancel) { (_) in}alert.addAction(cancelAction)present(alert, animated: true, completion: nil)

Added the correct line of code to my answer as it's much more concise than the answer below.


Alert(self, Title: “Hello”, TitleColor: UIColor.whiteColor(), Message: “World”, MessageColor: UIColor.whiteColor(), BackgroundColor: UIColor.blackColor(), BorderColor: UIColor.yellowColor(), ButtonColor: UIColor.yellowColor())    func Alert(View: ViewController, Title: String, TitleColor: UIColor, Message: String, MessageColor: UIColor, BackgroundColor: UIColor, BorderColor: UIColor, ButtonColor: UIColor) {    let TitleString = NSAttributedString(string: Title, attributes: [NSFontAttributeName : UIFont.systemFontOfSize(15), NSForegroundColorAttributeName : TitleColor])    let MessageString = NSAttributedString(string: Message, attributes: [NSFontAttributeName : UIFont.systemFontOfSize(15), NSForegroundColorAttributeName : MessageColor])    let alertController = UIAlertController(title: Title, message: Message, preferredStyle: .Alert)    alertController.setValue(TitleString, forKey: "attributedTitle")    alertController.setValue(MessageString, forKey: "attributedMessage")    let okAction = UIAlertAction(title: "OK", style: .Default) { (action) in    }    let cancelAction = UIAlertAction(title: "Cancel", style: .Default, handler: nil)    alertController.addAction(okAction)    alertController.addAction(cancelAction)    let subview = alertController.view.subviews.first! as UIView    let alertContentView = subview.subviews.first! as UIView    alertContentView.backgroundColor = BackgroundColor    alertContentView.layer.cornerRadius = 10    alertContentView.alpha = 1    alertContentView.layer.borderWidth = 1    alertContentView.layer.borderColor = BorderColor.CGColor    //alertContentView.tintColor = UIColor.whiteColor()    alertController.view.tintColor = ButtonColor    View.presentViewController(alertController, animated: true) {        // ...    }}


What push25 said is correct, only you have to use key-value coding in order to set the attributed string. (Thanks dupuis2387)

    //Define a color    let color = UIColor.redColor()    //Make a controller    let alertVC = UIAlertController(title: "Dont care what goes here, since we're about to change below", message: "", preferredStyle: UIAlertControllerStyle.Alert)    //Title String    var hogan = NSMutableAttributedString(string: "Presenting the great... Hulk Hogan!")    //Make the attributes, like size and color    hogan.addAttribute(NSFontAttributeName, value: UIFont.systemFontOfSize(40.0), range: NSMakeRange(24, 11))    hogan.addAttribute(NSForegroundColorAttributeName, value: color, range: NSMakeRange(0, NSString(string: hogan.string).length))    //Set the new title    //Use "attributedMessage" for the message    alertVC.setValue(hogan, forKey: "attributedTitle")    //This will change the button color    alertVC.view.tintColor = UIColor.orangeColor()    //Make the button    let button:UIAlertAction  = UIAlertAction(title: "Label text", style: UIAlertActionStyle.Default, handler: { (e:UIAlertAction!) -> Void in        println("\(e)")    })    //You can add images to the button    let accessoryImage:UIImage = UIImage(named: "someImage")!    button.setValue(accessoryImage, forKey:"image")    //Add the button to the alert    alertVC.addAction(button)    //Finally present it    self.presentViewController(alertVC, animated: true, completion:  nil)