如何改变UIAlertController的色调?

问题描述 投票:4回答:5

我可以改变UIAlertController的颜色吗?标准颜色是蓝色。它与标准的iOS应用程序非常接近。如果它是可定制的?我怎样才能改变这个颜色?例如按钮颜色。

谢谢!

ios swift
5个回答
13
投票

您可以更改底层视图的tintColor,但是,由于iOS 9(https://openradar.appspot.com/22209332)中引入的已知错误,tintColor被应用程序窗口的tintColor覆盖。

你可以:

  1. 在AppDelegate中更改应用程序tintColorfunc 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() })

6
投票

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

2
投票

只需更改基础视图的tintColor即可。

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

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
投票

在UIAlertController中添加一行:

alert.view.tintColor = UIColor.black
© www.soinside.com 2019 - 2024. All rights reserved.