Swift - темный фон ViewController, который появляется над контекстом - PullRequest
0 голосов
/ 24 сентября 2018

Вот код, который создает мое собственное всплывающее окно:

extension UIViewController {

    public func presentPopup(animated: Bool, completion: (() -> Void)? = nil) {

        let popup = MBPopUpViewController(accentColor: UIColor(hexString: "E40C15"),
                                          popUpTitle: "Hello",
                                          popUpMessage: "Test PopUp",
                                          popUpFirstButtonLabel: "1",
                                          popUpSecondButtonLabel: "2")

        popup.modalPresentationStyle = .overCurrentContext
        present(popup, animated: animated, completion: completion)

    }

}

Есть ли способ, как сделать первый контроллер представления немного темнее с анимацией затухания, когда появляется второе?

Здесь вы можете увидеть, что у меня сейчас.

Вы можете увидеть пример здесь , в приложении фотографий.Когда появляется AlertViewController, фон становится темнее.Есть ли идеи, как этого добиться?Спасибо:)

1 Ответ

0 голосов
/ 24 сентября 2018

Звучит так, как будто вы хотите Modal Popover.

Можно сделать цвет фона вида, помещаемого поверх другого, прозрачным.Вам нужно будет установить цвет и все для этого представления в viewDidLoad.

Убедитесь, что переход помечен Cover Vertical, чтобы не было анимации стирания, и это плавное затухание.Также включите Over Current Context или Over Full Screen в зависимости от того, как вы хотите, чтобы это выглядело.

Конечный результат будет выглядеть примерно так, как показано ниже, в зависимости от того, какие элементы вы помещаете во второй View Controller, к которому вы обращаетесь,( ПРИМЕЧАНИЕ: анимация, отображаемая в gif, ускорена. И темно-серая область будет содержать все, что вы помещаете в представление).

Есть несколько замечательных ресурсов дляпомочь вам с этим.Я могу порекомендовать Марка Мойкенса на YouTube, он делает отличные видео о таких вещах.

enter image description here

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