Модальные представления viewcontroller - PullRequest
0 голосов
/ 20 декабря 2018

Я представляю контроллер вида модально (прозрачно), а затем пытаюсь добавить диалоговое окно в качестве подпредставления с несколькими кнопками.Мне бы хотелось, чтобы это подпредставление было однотонным, но не прозрачным, но я не могу заставить его работать.

Я попытался установить альфа подпредставления на 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 голосов
/ 21 декабря 2018

Проблема в этой строке:

    self.view.alpha = 0.6

Это влияет на alpha этого представления и всех его подпредставлений , включая ваше диалоговое окно.Вы не можете сделать диалоговое окно полностью прозрачным, потому что оно наследует прозрачность от self.view.

Что вы, вероятно, хотели сделать, это дать self.view.backgroundColor некоторую прозрачность.Так что не делайте это чистым .white;сделайте это .white вместе с некоторым более низким альфа-значением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...