UIAlertController取消动作背景颜色

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了UIAlertController取消动作背景颜色相关的知识,希望对你有一定的参考价值。

My question is similar to this where I couldn't find the answer.

UIAlertController change background color of Cancel button for action sheet和这个alertController with white borders我希望取消按钮与actionStyle为“取消”,背景应该是不同的颜色(默认情况下它将是白色)。如何更改“取消”按钮的背景颜色。我不想将actionStyle更改为默认值。有没有其他方法来实现这一目标?这是我的代码

   func showActionSheet(_ changeAction: UIAlertAction) {
    let alertController = UIAlertController(title: "", message: "Are you sure".localize(), preferredStyle: .actionSheet)
    alertController.view.tintColor = UIColor.green
    if let subview = alertController.view.subviews.first, let alertContentView = subview.subviews.first {
        for innerView in alertContentView.subviews {
            innerView.backgroundColor = UIColor.red
        }
    }
    let cancelAction = UIAlertAction(title: "Cancel".localize(), style: .cancel) { _ in
        self.doneButton.isEnabled = true
    }
    alertController.addAction(changeAction)
    alertController.addAction(cancelAction)
    self.present(alertController, animated: true)
}
答案

可以使用UIAppearance和一点点破解来改变它。看我的答案here

以上是关于UIAlertController取消动作背景颜色的主要内容,如果未能解决你的问题,请参考以下文章

无法在 UIAlertController 中选择按钮的顺序

如何在 UIAlertController 中以编程方式更改特定按钮文本颜色

UIAlertController 简单修改title以及按钮的字体颜色

为啥这个 UIAlertController 不显示?

Swift 之自定义 UIAlertController

iOS 10:UIAlertController 只显示一个动作