【问题标题】:UIAlertController remove blurry layerUIAlertController 移除模糊层
【发布时间】:2018-03-05 05:54:55
【问题描述】:

使用自定义 UIAlertController,我正在尝试将背景颜色设置为纯红色。但是,我在上面得到了另一个模糊层。如何去除模糊层?

class CustomAlert: UIAlertController {
    override func viewDidLoad() {
        super.viewDidLoad()

        view.backgroundColor = UIColor.RED
    }
}

let popUpEmailVerification: CustomAlert = {
        let alert = CustomAlert(title: nil, message: "A verification email has been sent to your mailbox. Please open the link to finish verification.", preferredStyle: .alert)

    return alert
}()

【问题讨论】:

  • 感觉好像缺少了一些东西。为什么有什么“模糊”?我们需要更多的上下文——包括代码和其他任何东西——才能真正提供帮助。
  • 我已将背景设置为红色,您可以在角落看到它是红色的,但看起来还有另一个圆角层重叠在它上面。我想要的是一个实心的红色块。我已经添加了实现代码(请参阅编辑)。现在什么都没有了。

标签: ios swift background-color layer uialertcontroller


【解决方案1】:

据我所知,没有直接的 API 可以实现您想要的效果。

但是,您可以通过弄乱警报的未记录视图层次结构来完成您所描述的操作,如下所示:

let bgView = (alert.view.subviews.first?.subviews.first?.subviews.first!)! as UIView

然后设置bgView.backgroundColor = .red。这可能会在以后咬你。

或者,您可以使用这里的众多自定义警报库之一,SDCAlertView 是我成功使用的一个。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-28
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    相关资源
    最近更新 更多