模态ViewController子视图

时间:2018-12-20 20:13:51

标签: ios swift viewcontroller

我正在模态地(透明地)呈现视图控制器,然后尝试添加一个对话框作为带有几个按钮的子视图。我希望此子视图为纯色而不是透明的,但不能使其正常工作。

我尝试将子视图的Alpha设置为1,但它不会改变外观。

class GameOverViewController: UIViewController {
    private let restart = UIButton(type: .custom)
    private let mainmenu = UIButton(type: .custom)

    override func viewDidLoad() {
        //displays view controller modally
        super.viewDidLoad()
        self.view.backgroundColor = .white
        self.view.alpha = 0.6
        self.modalPresentationStyle = .overCurrentContext

        //add dialogue box
        let dialoguebox = UIView(frame: CGRect(origin: CGPoint(x: self.view.frame.width / 2, y: self.view.frame.height / 2), size: CGSize(width: self.view.frame.width / 2, height: self.view.frame.height / 2)))
        dialoguebox.backgroundColor = .red
        dialoguebox.center = self.view.center
        dialoguebox.alpha = 1
        self.view.addSubview(dialoguebox)
    }
}

1 个答案:

答案 0 :(得分:2)

问题是这一行:

friendships:
 user1
    - user3: true
    - user4: true
 user2
    - user1: true 
    - user5: true 

这会影响此视图 self.view.alpha = 0.6 及其所有子视图,包括您的对话框。您无法使对话框具有完全有效的不透明度,因为它从alpha继承了它的透明度。

您可能想做的是为self.view提供一些透明度。因此,请勿将其设为纯self.view.backgroundColor;使其.white以及一些较低的alpha值。