为什么我的UIAlertController中的选项变暗,我该如何解决?

时间:2015-10-21 16:16:42

标签: ios swift uialertcontroller

这很奇怪。我正在使用以下代码制作UIAlertController:

let optionMenu = UIAlertController(title: nil, message: "Choose Option", preferredStyle: UIAlertControllerStyle.ActionSheet)

    let action = UIAlertAction(title: "Action 1", style: .Default, handler: {
        (alert: UIAlertAction!) -> Void in
        print("Cancelled")
    })

    let action2 = UIAlertAction(title: "Action 2", style: .Default, handler: {
        (alert: UIAlertAction!) -> Void in
        print("Cancelled")
    })

    let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel, handler: {
        (alert: UIAlertAction!) -> Void in
        print("Cancelled")
    })

    optionMenu.addAction(cancelAction)
    optionMenu.addAction(action)
    optionMenu.addAction(action2)

    self.presentViewController(optionMenu, animated: true, completion: nil)

这就是屏幕上的样子。选项很暗(我相信拉入或受到后视图的影响)。

Dimmed Options

我能够添加此代码以使其成为纯白色,但分离的好处消失了。

let subview = optionMenu.view.subviews.first! as UIView
let alertContentView = subview.subviews.first! as UIView
alertContentView.backgroundColor = UIColor.whiteColor()
alertContentView.layer.cornerRadius = 2    

它看起来像这样:Non-dimmed, but not quite right

关于如何不让背景影响UIAlertController中的选项的任何想法?

我将这个UIAlertController添加到一个白色背景的页面,看起来应该是这样。

谢谢!

2 个答案:

答案 0 :(得分:0)

这不是一个错误。没有什么是"变暗"。警报按钮是半透明的,因此在深色背景下它们会变暗。它们在红色背景上也带红色,在蓝色背景上带蓝色;半透明意味着什么。所有应用中的所有操作表都如下所示。这里没问题。别担心,快乐。

答案 1 :(得分:0)

这是我的目标C代码。尝试同样的快捷方式:

[alert.view setBackgroundColor:[UIColor whiteColor]];

希望有帮助!