使用 Interface Builder 探索 ModalPresentationStyle

這將是一個非常基本的應用程式,它將說明 iOS 中的不同 ModalpresentationStyle。根據此處的文件,UIModalPresentationStyle 有 9 個不同的值,如下所示,

  1. fullScreen
  2. pageSheet
  3. formSheet
  4. currentContext
  5. custom
  6. overFullScreen
  7. overCurrentContext
  8. popover
  9. none

要設定專案,只需建立一個普通的 iOS 專案並新增 2 ViewControllers。把 UIButton 放在你最初的 ViewController 中,並通過 Target -> Action 機制連線到第 2 ViewController。為了區分 ViewControllers,在 ViewController 中設定 UIView 的背景屬性為其他顏色。如果一切順利,你的 Interface Builder 應該看起來像這樣, StackOverflow 文件

確保你構建此專案並在 iPad 上執行 (有關 iPad 原因的詳細資訊,請參閱備註部分)。完成專案設定後,選擇 segue 並轉到 attributes inspector。你應該能看到這樣的東西, StackOverflow 文件

將 kind 屬性設定為 Present Modally

現在,我們不會在這個例子中看到所有的效果,因為它們中的一些需要一些程式碼。

讓我們從 fullscreen 開始吧。在 Kind 選項卡中選擇 Present Modally 時,預設選擇此效果。當你構建並執行時,第二個 ViewController 會佔據你 iPad 的全屏。

StackOverflow 文件

接下來是 pageSheet。你可以從 Presentation 選項卡中選擇此選項。在此選項中,當裝置處於縱向模式時,第二個 ViewController 類似於全屏,但在橫向模式下,第二個 ViewController 的裝置寬度要窄得多。此外,第二 ViewController 未涵蓋的任何內容都將變暗。

StackOverflow 文件

對於 formSheet 型,第二個 ViewController 放置在裝置的中心,尺寸小於裝置的尺寸。此外,當裝置處於橫向模式且鍵盤處於可見位置時,向上調整檢視以顯示 ViewController

StackOverflow 文件

我們要嘗試的最後一種風格是 popover。要選擇此樣式,請在 Kind 選項卡中選擇 Present as Popover。第二個 ViewController 呈現為一個小的 popover(大小可以設定)。背景內容變暗。彈出視窗外的任何水龍頭都會解開彈出視窗。你的 Attributes Inspector 應該是這樣的,

StackOverflow 文件

Anchor 是你希望彈出箭頭指向的 UI 元素。Directions 是你允許 popover Anchor 指向的方向。

StackOverflow 文件

還有更多這些基本的模態表示樣式,但它們實現起來並不複雜,需要一些程式碼。可以在 Apple 文件中找到更多詳細資訊。