2017-07-07 525 views
1

是的,我知道。您无法更改UIAlertController的外观。我不想改变UIAlertController本身的背景,我想改变视图背景的色调。你知道它是如何透明的黑色?我想改变这种颜色来清除。我将如何做到这一点?更改UIAlertController背景色调

回答

0

你可以改变背景颜色,如下所示:

let alert = UIAlertController(title: "TITLE", message: "My message", preferredStyle: .alert) 
if let subview = alert.view.subviews.first?.subviews.first?.subviews.first { 
    subview.backgroundColor = .red 
} 
alert.view.tintColor = UIColor.black 
+0

对不起,没有工作... –

+0

哦,刚刚意识到你编辑了这个问题 – Lawliet

+1

这段代码做了很多假设关于'UIAlertController'的私人子视图结构。它现在可能工作。它可能会在未来的iOS更新中打破。谨防。 – rmaddy

0

不,你不能改变透明背景颜色。这不属于你可以控制的UIAlertController变量的一部分。

您将不得不通过呈现具有透明背景和伪装的类似警报控制器的UI元素的新视图控制器来修复它。

要进一步验证您没有控制警报控制器,请在0,0上创建框架原点的另一个视图,然后添加到警报控制器的视图中。它会显示在你的弹出窗口的左上角,而不是你的窗口的窗口