使用 Interface Builder 探索 ModalPresentationStyle
这将是一个非常基本的应用程序,它将说明 iOS 中的不同 ModalpresentationStyle
。根据此处的文档,UIModalPresentationStyle
有 9 个不同的值,如下所示,
fullScreen
pageSheet
formSheet
currentContext
custom
overFullScreen
overCurrentContext
popover
none
要设置项目,只需创建一个普通的 iOS 项目并添加 2 ViewControllers
。把 UIButton
放在你最初的 ViewController
中,并通过 Target -> Action
机制连接到第 2 ViewController
。为了区分 ViewControllers
,在 ViewController
中设置 UIView
的背景属性为其他颜色。如果一切顺利,你的 Interface Builder 应该看起来像这样,
确保你构建此项目并在 iPad 上运行 (有关 iPad 原因的详细信息,请参阅备注部分)。完成项目设置后,选择 segue 并转到 attributes inspector
。你应该能看到这样的东西,
将 kind 属性设置为 Present Modally
。
现在,我们不会在这个例子中看到所有的效果,因为它们中的一些需要一些代码。
让我们从 fullscreen
开始吧。在 Kind
选项卡中选择 Present Modally
时,默认选择此效果。当你构建并运行时,第二个 ViewController
会占据你 iPad 的全屏。
接下来是 pageSheet
。你可以从 Presentation
选项卡中选择此选项。在此选项中,当设备处于纵向模式时,第二个 ViewController
类似于全屏,但在横向模式下,第二个 ViewController
的设备宽度要窄得多。此外,第二 ViewController
未涵盖的任何内容都将变暗。
对于 formSheet
型,第二个 ViewController
放置在设备的中心,尺寸小于设备的尺寸。此外,当设备处于横向模式且键盘处于可见位置时,向上调整视图以显示 ViewController
。
我们要尝试的最后一种风格是 popover
。要选择此样式,请在 Kind
选项卡中选择 Present as Popover
。第二个 ViewController
呈现为一个小的 popover(大小可以设置)。背景内容变暗。弹出窗口外的任何水龙头都会解开弹出窗口。你的 Attributes Inspector
应该是这样的,
Anchor
是你希望弹出箭头指向的 UI 元素。Directions
是你允许 popover Anchor
指向的方向。
还有更多这些基本的模态表示样式,但它们实现起来并不复杂,需要一些代码。可以在 Apple 文档中找到更多详细信息。