2017-07-07 107 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上創建框架原點的另一個視圖,然後添加到警報控制器的視圖中。它會顯示在你的彈出窗口的左上角,而不是你的窗口的窗口