2015-02-13 3 views
2

Я использую новый UIAlertController для реализации меню параметров для своего приложения. Я пытаюсь получить цвет фона UIAlertController в соответствии с темой остальной части моего приложения. Тема для моего приложения достаточно проста, и состоит из белого текста с голубым/серым цветом фона для панели инструментов и панели навигации, как показано ниже:Настройка цвета фона для UIAlertController в Swift

enter image description here

Однако, у меня возникли некоторые проблемы при попытке получить мой UIAlertController, чтобы соответствовать этой теме. Я сделал следующие два вызова, чтобы установить цвета текста и фон:

uiAlertController.view.backgroundColor = UIColor(red: CGFloat(.17255), green: CGFloat(.24314), blue: CGFloat(.31373), alpha: CGFloat(1.0)) 
uiAlertController.view.tintColor = UIColor.whiteColor() 

Это изменило UIAlertController выглядеть следующим образом:

enter image description here

текст был изменен с цвета по умолчанию синих систем на белый, но цвет фона неправильный. Я также попытался изменить указательную непрозрачность (uiAlertController.view.opaque = true), но это тоже не помогло. Как мне настроить цвет фона, чтобы он соответствовал моей панели навигации и панели инструментов? Спасибо

ответ

4

для 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 

enter image description here

0

У меня был такой же выпуск. Оказывается, мне нужно пройти по дереву подвид так:

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) 
1

Установка цвета фона для UIAlertController в Swift

Все, что вам нужно сделать, это:

// Создать оповещение контроллер

...

// Установка цвета фона

Смежные вопросы