底部抽屉组件旨在处理任何内容,包括滚动内容。
UICollectionView
、UITableView
或 UIScrollView
BottomSheetNavigationController
在内部构建流程适应内容大小 | 交互式关闭 |
---|---|
![]() |
![]() |
Push 和 Pop 过渡 | 交互式 Pop 过渡 |
---|---|
![]() |
![]() |
要使用 Swift Package Manager 将 Bottom Sheet 集成到您的 Xcode 项目中,请将其添加到您的 Package.swift
的 dependencies 值中
dependencies: [
.package(url: "https://github.com/joomcode/BottomSheet", from: "2.0.0")
]
CocoaPods 是 Cocoa 项目的依赖项管理器。 您可以使用以下命令安装它
$ bundle install
要使用 CocoaPods 将 BottomSheet 集成到您的 Xcode 项目中,请在您的 Podfile
中指定它
source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
target '<Your Target Name>' do
pod 'BottomSheet', :git => 'https://github.com/joomcode/BottomSheet'
end
此仓库包含演示,它可以成为理解底部抽屉使用的良好开端,但以下是一些简单的步骤可供参考
UIViewController
,并通过 preferredContentSize 属性设置内容的大小如果您想构建流程,请使用 BottomSheetNavigationController
presentBottomSheetInsideNavigationController(
viewController: viewControllerToPresent,
configuration: .default
)
您可以通过传递 configuration 参数来自定义外观
presentBottomSheet(
viewController: viewControllerToPresent,
configuration: BottomSheetConfiguration(
cornerRadius: 10,
pullBarConfiguration: .visible(.init(height: 20)),
shadowConfiguration: .init(backgroundColor: UIColor.black.withAlphaComponent(0.6))
),
canBeDismissed: {
// return `true` or `false` based on your business logic
true
},
dismissCompletion: {
// handle bottom sheet dismissal completion
}
)
阅读 Medium 上的文章,以便更好地了解其内部工作原理