#swift #uiviewcontroller #swift5 #popover
#swift #uiviewcontroller #swift5 #всплывающее окно
Вопрос:
Я пытаюсь создать всплывающее окно, которое намеренно занимает только небольшую часть экрана. Я хотел бы открыть всплывающее окно с помощью кнопки на панели навигации. Я пытался выполнить поиск, но смог найти только устаревшие сообщения, которые не помогли мне продвинуться дальше.
Я надеюсь, что кто-нибудь знает способ или, надеюсь, может указать мне направление.
Чего-то подобного я пытаюсь достичь:
Решение:
Создайте новый ViewController (с модальным, перекрестным переходом к нему).
Сделайте представление непрозрачным и сделайте цвет фона представления прозрачным или «затемните» фон, объяснено в нескольких строках ниже. После этого добавьте любое представление (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:
Один из лучших способов добиться этого, представив новый контроллер представления. Что нужно иметь в виду, чтобы добиться наилучшего пользовательского интерфейса.
- Стиль перехода этого контроллера всплывающего окна будет перекрестным
- Контроллер всплывающего окна будет иметь полупрозрачный фоновый вид, как показано на рисунке выше
- В этом контроллере представления вы можете создать собственное всплывающее окно поверх полупрозрачного фона в зависимости от вашего предпочтительного размера, стиля и т. Д