在 Swift 中设置 UIAlertController 的背景颜色
Setting background color for UIAlertController in Swift
我正在使用新的 UIAlertController
为我的应用程序实现各种选项菜单。我试图让 UIAlertController
的背景颜色与我的应用程序其余部分的主题相匹配。我的应用程序的主题非常简单,由白色文本组成,工具栏和导航栏的背景色为 blue/grey,如下所示:
但是,我在尝试让我的 UIAlertController
符合这个主题时遇到了一些麻烦。我进行了以下两次设置文本和背景颜色的调用:
uiAlertController.view.backgroundColor = UIColor(red: CGFloat(.17255), green: CGFloat(.24314), blue: CGFloat(.31373), alpha: CGFloat(1.0))
uiAlertController.view.tintColor = UIColor.whiteColor()
这将 UIAlertController
更改为如下所示:
文字由默认的蓝色系统颜色更改为白色,但背景颜色不正确。我还尝试修改指定的不透明度 (uiAlertController.view.opaque = true
),但这也无济于事。我该如何设置背景颜色,使其与我的导航栏和工具栏相匹配?谢谢
我遇到了同样的问题。结果我需要像这样遍历子视图树:
var subView = alertController.view.subviews.first as! UIView
var contentView = subView.subviews.first as! UIView
contentView.backgroundColor = UIColor(red: 233.0/255.0, green: 133.0/255.0, blue: 49.0/255.0, alpha: 1.0)
在 Swift
中设置 UIAlertController 的背景颜色
你所要做的就是:
//创建你的警报控制器
...
//设置背景颜色
let backView = yourAlertController.view.subviews.last?.subviews.last
backView?.layer.cornerRadius = 10.0
backView?.backgroundColor = UIColor.yellowColor()
self.presentViewController(yourAlertController, animated: true, completion: nil);
对于 Swift 3 Xcode 8.2.1
let subview = (alert.view.subviews.first?.subviews.first?.subviews.first!)! as UIView
subview.backgroundColor = UIColor(red: (145/255.0), green: (200/255.0), blue: (0/255.0), alpha: 1.0)
alert.view.tintColor = UIColor.black
我正在使用新的 UIAlertController
为我的应用程序实现各种选项菜单。我试图让 UIAlertController
的背景颜色与我的应用程序其余部分的主题相匹配。我的应用程序的主题非常简单,由白色文本组成,工具栏和导航栏的背景色为 blue/grey,如下所示:
但是,我在尝试让我的 UIAlertController
符合这个主题时遇到了一些麻烦。我进行了以下两次设置文本和背景颜色的调用:
uiAlertController.view.backgroundColor = UIColor(red: CGFloat(.17255), green: CGFloat(.24314), blue: CGFloat(.31373), alpha: CGFloat(1.0))
uiAlertController.view.tintColor = UIColor.whiteColor()
这将 UIAlertController
更改为如下所示:
文字由默认的蓝色系统颜色更改为白色,但背景颜色不正确。我还尝试修改指定的不透明度 (uiAlertController.view.opaque = true
),但这也无济于事。我该如何设置背景颜色,使其与我的导航栏和工具栏相匹配?谢谢
我遇到了同样的问题。结果我需要像这样遍历子视图树:
var subView = alertController.view.subviews.first as! UIView
var contentView = subView.subviews.first as! UIView
contentView.backgroundColor = UIColor(red: 233.0/255.0, green: 133.0/255.0, blue: 49.0/255.0, alpha: 1.0)
在 Swift
中设置 UIAlertController 的背景颜色你所要做的就是:
//创建你的警报控制器
...
//设置背景颜色
let backView = yourAlertController.view.subviews.last?.subviews.last
backView?.layer.cornerRadius = 10.0
backView?.backgroundColor = UIColor.yellowColor()
self.presentViewController(yourAlertController, animated: true, completion: nil);
对于 Swift 3 Xcode 8.2.1
let subview = (alert.view.subviews.first?.subviews.first?.subviews.first!)! as UIView
subview.backgroundColor = UIColor(red: (145/255.0), green: (200/255.0), blue: (0/255.0), alpha: 1.0)
alert.view.tintColor = UIColor.black