2016-06-09 3 views
2

Могу ли я изменить цвета UIAlertController? Стандартный цвет - синий. И это очень близко к стандартным приложениям iOS. Если это настраивается? Как я могу изменить цвета этого? Например, цвет кнопки.Как изменить цвет оттенка UIAlertController?

Спасибо!

ответ

9

Вы можете просто изменить tintColor подстилающего зрения, однако, из-за известную ошибку, введенной в IOS 9 (https://openradar.appspot.com/22209332), то tintColor переопределяется окно приложения tintColor.

Вы можете:

  1. Изменить приложение tintColor в AppDelegate.

    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { 
        self.window.tintColor = UIColor.redColor() 
        return true 
    } 
    
  2. Повторно использовать цвет в блоке завершения.

    self.presentViewController(alert, animated: true, completion: {() -> Void in 
        alert.view.tintColor = UIColor.redColor() 
    }) 
    
+0

Спасибо! Работает неплохо. – Beginner

+0

Да, отлично работает! – Bill

+2

alertController.view.tintColor = [UIColor yellowColor]; Работает отлично для меня – Jargen89

2

Просто измените tintColor основного вида.

[alertController.view setTintColor:[UIColor yellowColor]]; 
+0

Это на самом деле выполнимо – Jargen89

3

В Swift, вы могли бы сделать что-то вроде этого:

let alert = UIAlertController(title: "Alert", message: "This is an alert.", preferredStyle: .Alert) 
alert.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) 
alert.view.tintColor = UIColor.redColor() 
self.presentViewController(alert, animated: true, completion: nil) 
+0

Как сказал @guidev, есть ошибка, которая мешает контроллерам предупреждений о почитании 'tintColor', которые вы установили на них. – NRitH

+0

Похоже, что ошибка была исправлена. Я просто протестировал в Xcode 9.2 (9C40b) - iOS 11, и теперь он работает нормально. –

2

В Swift 4 и Xcode 9,2

let alertView = UIAlertController(title: "", message: "", preferredStyle: .alert) 

alertView.addAction(UIAlertAction(title: "CONFIRM", style: .default, handler: { (alertAction) -> Void in 
       //my logic 
      })) 

alertView.addAction(UIAlertAction(title: "CANCEL", style: .default, handler: nil)) 


alertView.view.tintColor = UIColor.init(red: 45.0/255.0, green: 187.0/255.0, blue: 135.0/255.0, alpha: 1.0) 

present(alertView, animated: true, completion: nil) 
1

Добавьте одну строку в UIAllertController :

alert.view.tintColor = UIColor.black 
Смежные вопросы