Swift如何更改UIAlertController的标题颜色
如何使用Swift更改UIAlertController的标题字体?
我不是在谈论消息的颜色,我不是在谈论button的颜色。
我在谈论标题。
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: .Default) { (action: UIAlertAction!) -> Void in } presentViewController(alert, animated: true, completion: nil)
添加了正确的代码行我的答案,因为它比下面的答案更简洁。
push25说的是正确的,只有你必须使用键值编码来设置属性string。 (感谢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)
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) { // ... } }
你也可以添加一个标题为“”(空格)的UIAlertController.view
,并在标题的地方添加一个自定义的UILabel到UIAlertController.view
。