作者:一颗顽石 | 来源:互联网 | 2023-05-27 12:08
这是我创建UIAlertController的代码
// Create the alert controller
var alertCOntroller= UIAlertController(title: "Are you sure you want to call \(self.number)?", message: "", preferredStyle: .Alert)
// Create the actions
var okAction = UIAlertAction(title: "Call", style: UIAlertActionStyle.Default) {
UIAlertAction in
var url:NSURL = NSURL(string: "tel://\(self.number)")!
UIApplication.sharedApplication().openURL(url)
}
var cancelAction = UIAlertAction(title: "Cancel", style: UIAlertActionStyle.Cancel) {
UIAlertAction in
}
// Add the actions
alertController.addAction(okAction)
alertController.addAction(cancelAction)
// Present the controller
self.presentViewController(alertController, animated: true, completion: nil)
我无法弄清楚如何更改取消和调用操作的文本颜色.标题文本目前为黑色,取消和呼叫按钮为白色.我正在努力让它们全黑,以提高能见度.有任何想法吗?谢谢!
1> leerob..:
经过一些试验和错误后,我发现这很有效.希望这将有助于未来的快速新人!
alertController.view.tintColor = UIColor.blackColor()
2> 小智..:
斯威夫特4.2
一种方法是在UIAlertController上进行扩展,使所有您的应用警报都具有相同的颜色。但是它会留下红色的破坏作用。
extension UIAlertController{
open override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.view.tintColor = .yourcolor
}
}
3> Piyush Sanep..:
下面的代码正在改变UIAlertView
标题颜色.
let alert = UIAlertController(title: messageTitle, message: messageText, preferredStyle: UIAlertControllerStyle.Alert)
alert.setValue(NSAttributedString(string: messageTitle, attributes: [NSFontAttributeName : UIFont.systemFontOfSize(17),NSForegroundColorAttributeName : UIColor.redColor()]), forKey: "attributedTitle")
alert.addAction(UIAlertAction(title: buttonText, style: UIAlertActionStyle.Default, handler: nil))
parent.presentViewController(alert, animated: true, completion: nil)
如果要更改按钮颜色,请在当前View Controller之后添加以下代码.
alert.view.tintColor = UIColor.redColor()
4> CodyMace..:
Piyush的回答对我最大的帮助,但这是Swift 3的一些调整,它们分别更改了标题和消息。
标题:
alert.setValue(NSAttributedString(string: alert.message, attributes: [NSFontAttributeName : UIFont.systemFont(ofSize: 29, weight: UIFontWeightMedium), NSForegroundColorAttributeName : UIColor.red]), forKey: "attributedTitle")
信息:
alert.setValue(NSAttributedString(string: alert.message, attributes: [NSFontAttributeName : UIFont.systemFont(ofSize: 29, weight: UIFontWeightMedium), NSForegroundColorAttributeName : UIColor.red]), forKey: "attributedMessage")
字体大是因为我实际上需要在tvOS上执行,在它和iOS上都很好用。