我正在使用新的UIAlertController
为我的应用程序实现各种选项菜单。我试图获得UIAlertController
的背景颜色以匹配我的应用程序的其余部分的主题。我的应用程序的主题非常简单,包含工具栏和导航栏的蓝色/灰色背景颜色的白色文本,如下所示:
但是,我在尝试让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
),但这也无济于事。如何设置背景颜色以使其与导航栏和工具栏匹配?感谢
答案 0 :(得分:7)
用于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
答案 1 :(得分:2)
你所要做的就是:
//创建警报控制器
...
//设置背景颜色
class StringLengthEqualityComparer : IEqualityComparer<string>
{
public bool Equals(string x, string y)
{
...
}
public int GetHashCode(string obj)
{
...
}
}
StringLengthEqualityComparer stringLengthComparer = new StringLengthEqualityComparer();
var rezList = lst1.Except(lst2,stringLengthComparer ).Union(lst2.Except(lst1,stringLengthComparer),stringLengthComparer).ToList();
答案 2 :(得分:1)
我有同样的问题。结果我需要像这样遍历子视图树:
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)