實作
- UISheetPresentationController 是包在 UIKit裡所以不用特別 import
- 首先建立你想推出的VC,此範例是推出PHPickerViewController 或是WebViewController
- 針對將要推出的 VC 找 sheetPresentationController 屬性
let web = WebViewController()if let sheet = web.sheetPresentationController {
}
4. 設定 sheet 內容
4.1 detents 參數:設定允許 sheet 可拉動的範圍,只有 medium 跟 large 兩種
4.2 prefersGrabberVisible參數:是否顯示移動條
4.3 largestUndimmedDetentIdentifier參數:讓背後 VC 不會因為sheetPresentationController在拉動時變暗,分 medium 跟 large 兩種時候
4.4 prefersScrollingExpandsWhenScrolledToEdge參數:
sheetPresentationController 向上滑動時,會觸發模式的切換 medium -> large
但原本的只是想滑動 sheetPresentationController 裡面的內容而不是切換模式
這個屬性可以避免這問題
4.5 preferredCornerRadius參數:可客制圓角大小
4.6, 4.7 prefersEdgeAttachedInCompactHeight 和widthFollowsPreferredContentSizeWhenEdgeAttached 參數:以下兩項是在 device orientation left or right 才看得出來,左邊是都未設定
中間是 prefersEdgeAttachedInCompactHeight
右邊是 widthFollowsPreferredContentSizeWhenEdgeAttached
5. 最後 present 頁面
present(pickView, animated: true, completion: nil)
SheetPresentationController 實作程式碼
GitHub
參考