【问题标题】:Change UIAlertController background color and text font & color with Swift 4使用 Swift 4 更改 UIAlertController 背景颜色和文本字体和颜色
【发布时间】:2019-03-07 02:48:22
【问题描述】:

我想更改我的警报控制器的背景以匹配我的游戏背景和文本字体以匹配我的游戏的文本字体这里是我正在使用的代码但不工作

    let alertController = UIAlertController(title: "Time Up!", message: "Your time is up! You got a score of \(point) points and your total coins now is \(totalPoints). You Can Do Better", preferredStyle: .alert)

            let restartAction = UIAlertAction(title: "Play Again!", style: .default, handler: nil)
            alertController.addAction(restartAction)

            alertController.view.tintColor = UIColor(red: 226, green: 158, blue: 152, alpha: 1.0 )
            alertController.view.backgroundColor = UIColor(red: 226, green: 158, blue: 152, alpha: 1.0)
            alertController.view.layer.cornerRadius = 15

            self.present(alertController, animated: true, completion: nil)

【问题讨论】:

  • 尝试此链接中的建议stackoverflow.com/questions/39852020/…
  • UIAlertController 的许多自定义代码取决于未正式记录的实现细节。此类代码可能适用于某些 iOS 版本,可能适用于其他版本,也可能不适用于包括未来更新在内的其他版本。我会为警报编写自己的视图控制器并以模态方式显示它,而不是破解当前UIAlertController 的实现细节。
  • 感谢@Deepika 这有助于改变背景,但我仍然需要字体!
  • 无论如何你可以指导我这样做吗? @OOPer
  • @Lz_Cole,在这个线程中,您询问如何自定义UIAlertController,我不想根据实现细节显示一些脆弱的代码。如果您想询问如何显示自己的视图控制器(如警报),您应该启动另一个线程,或者您可能会发现 SO 中已经存在一些相关线程。无论如何,这是你的选择。

标签: swift xcode fonts colors uialertcontroller


【解决方案1】:

Alert Controller 是默认的 iOS 控制器。您可以创建自定义视图。添加标签、按钮并在其上应用颜色主题。

或者有第三方库,你可以使用。

https://github.com/dinhquan/SwiftAlertView

https://github.com/Hamadakram/AlertView

【讨论】:

    【解决方案2】:

    在更改 UIAlertController background color 时,您需要这样做:

    alertController.view
        .subviews.first?
        .subviews.first?
        .subviews.first?
        .backgroundColor = UIColor(red: 226/255.0, green: 158/255.0, blue: 152/255.0, alpha: 1.0)
    

    在设置 RGB UIColor 时,您必须包含 /255 才能工作。示例:

    UIColor(red: 226/255.0, green: 158/255.0, blue: 152/255.0, alpha: 1.0)
    

    【讨论】:

    • 谢谢你,这是我收到的最大帮助!是否有可能更改其上的文本字体?
    • 对于 AlertController (title & message): 1. 创建一个字体属性,这里我们使用字体 Rockwell: let font = [NSAttributedString.Key.font: UIFont(name: "Rockwell", size: 12.0)] 2. 创建 NSMutableAttributedString: let textAttributedstring = NSMutableAttributedString(string: "Text", attributes: titleFont) 3. 通过 NSMUtableAttributedString 设置标题: alertController.setValue(textAttributedstring, forKey: "attributedTitle") //只需在 forKey 中更改为 attributedMessage if message
    猜你喜欢
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多