试图获得特定大小的弹出窗口

Trying to get a popover in a certain size

我正在尝试创建一个只打算占据屏幕一小部分的弹出窗口。我想从导航栏中的按钮打开弹出窗口。我试过搜索它,但我只能找到过时的帖子,这对我没有任何帮助。

我希望有人知道方法或者可以指点我一个方向。

我正在努力实现这样的目标:


解决方法:

创建一个新的 ViewController(带有模态、交叉溶解转场)。

使视图不透明并使视图的背景颜色清晰或'darken' 背景,在此处解释几行。之后在顶部添加任何视图(UIView、UIStackView、UILabel、UIButton 等),你可以随心所欲地制作它!代码:

Swift 5:

class PopoverViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

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

对于 'darkening' 背景,将视图的背景颜色设置为黑色,alpha 介于 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. 此弹出视图控制器的过渡样式将是Cross Dissolve
  2. 弹出视图控制器将有一个半透明的背景视图,如上图所示
  3. 您可以在此视图控制器中根据您喜欢的大小、样式等在半透明背景上拥有自己的自定义弹出视图