BottomSheetPresentation
一个用于iOS的UIPresentationController
和相关类,可用于在屏幕底部展示视图控制器,类似于操作表单。
安装
Swift包管理器
要使用Swift包管理器(Swift Package Manager),请从Xcode中或作为Package.swift
文件中的依赖项将BottomSheetPresentation添加到您的项目中。
CocoaPods
要使用CocoaPods(CocoaPods)使用BottomSheetPresentation,请将其添加到您的Podfile中的依赖项
target 'MyAwesomeApp' do
pod 'BottomSheetPresentation'
end
然后运行pod install
,并使用生成的.xcworkspace
打开您的项目。
Carthage
要使用BottomSheetPresentation与Carthage,需要将依赖项添加到你的Cartfile
中。
github "Detroit-Labs/BottomSheetPresentation"
运行carthage update
来构建框架。然后按照Carthage的README中剩余的步骤,将框架添加到你的项目中,配置运行脚本构建阶段等。
使用BottomSheetPresentation
Swift
要使用BottomSheetPresentation,创建一个BottomSheetPresentationManager
并将其设置为你要展示的视图控制器的transitioningDelegate
,然后将视图控制器的modalPresentationStyle
设置为.custom
。
let manager = BottomSheetPresentationManager() // Save this reference somewhere
let viewControllerToPresent = …
viewControllerToPresent.transitioningDelegate = manager
viewControllerToPresent.modalPresentationStyle = .custom
present(viewControllerToPresent, animated: true, completion: nil)
Objective-C
BottomSheetPresentation同样适用于Objective-C。
BottomSheetPresentationManager *manager = [[BottomSheetPresentationManager alloc] init];
UIViewController *viewControllerToPresent = …;
viewControllerToPresent.transitioningDelegate = manager;
viewControllerToPresent.modalPresentationStyle = UIModalPresentationCustom;
[self presentViewController:viewControllerToPresent
animated:YES
completion:NULL];
要求
为了正确计算展示视图控制器的尺寸,它必须满足使用systemLayoutSizeFitting(UIView.layoutFittingCompressedSize)
的高度自动布局约束条件,或者具有非零的preferredContentSize
。