Попытка получить всплывающее окно определенного размера

#swift #uiviewcontroller #swift5 #popover

#swift #uiviewcontroller #swift5 #всплывающее окно

Вопрос:

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

Я надеюсь, что кто-нибудь знает способ или, надеюсь, может указать мне направление.

Чего-то подобного я пытаюсь достичь:

скриншот


Решение:

Создайте новый ViewController (с модальным, перекрестным переходом к нему).

2

Сделайте представление непрозрачным и сделайте цвет фона представления прозрачным или «затемните» фон, объяснено в нескольких строках ниже. После этого добавьте любое представление (UIView, UIStackView, UILabel, UIButton и т. Д.) Сверху, И вы можете сделать это так, как вам нравится! Код:

 Swift 5:

class PopoverViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.isOpaque = false
        self.view.backgroundColor = .clear
    }
}
  

Для «затемнения» фона установите цвет фона представления на черный с альфа-значением от 0,4 до 0,6 в зависимости от того, насколько вы хотите, чтобы фон был темнее. Пример:

 Swift 5:

class PopoverViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.isOpaque = false
        self.view.backgroundColor = UIColor.black.withAlphaComponent(0.5)
    }
}
  

Ответ №1:

Один из лучших способов добиться этого, представив новый контроллер представления. Что нужно иметь в виду, чтобы добиться наилучшего пользовательского интерфейса.

  1. Стиль перехода этого контроллера всплывающего окна будет перекрестным
  2. Контроллер всплывающего окна будет иметь полупрозрачный фоновый вид, как показано на рисунке выше
  3. В этом контроллере представления вы можете создать собственное всплывающее окно поверх полупрозрачного фона в зависимости от вашего предпочтительного размера, стиля и т. Д