关于
这是一个类iOS地图的锚定底部面板,具有可配置的锚点和可重用的BottomSheetView
,可以在提供的模态控制器中使用,也可以不用。
BottomSheetView
支持所有类型的UIView
,包括UIScrollView
及其祖先作为容器视图。
BottomSheetViewController
旨在作为模态展示的控制器使用。
要配置BottomSheetView
,您应使用BottomSheetViewConfiguration
结构体,如下所示
let config = BottomSheetViewConfiguration(
contentView: UIView(),
parentViewController: self,
defaultPosition: .middle(),
positions: [.top(), .middle(), .bottom()],
isSlidingToAppear: false,
isPullIndicatorNeeded: true,
closeButtonIcon: UIImage(named: "closeIcon"),
isDismissAllowed: false,
cornerRadius: 16
)
支持锚点
- 顶部
- 中部
- 底部
- 固定
- 根据内容
每个锚点都有一个关联值,这将覆盖此锚点的默认高度。根据内容模式尚未实现,欢迎提交相关请求。
一旦完成配置,您应该创建BottomSheetView
,如下所示
let bottomSheetView = BottomSheetView(configuration: configuration)
如果您想用这个视图处理一些复杂的UI情况,BottomSheetView
将处理拖动手势,并将在heightDidChange(to height: CGFloat)
方法中通知BottomSheetViewDelegate
如果您想实现通用的弹出行为,您应该使用BottomSheetViewController
。创建并展示它如下所示
let bottomSheetViewController = BottomSheetViewController(bottomSheetView: bottomSheetView)
bottomSheetViewController.delegate = self
bottomSheetViewController.present(from: self)
安装
CocoaPods
AnchoredBottomSheet可通过CocoaPods获取。要安装它,将以下行添加到您的Podfile中即可
pod 'AnchoredBottomSheet', '~> 1.6.2'
Carthage
Carthage 是一个去中心化的依赖管理器,它会构建您的依赖项并提供二进制框架。
您可以使用以下命令通过 Homebrew 安装 Carthage
$ brew update
$ brew install carthage
要使用 Carthage 集成 AnchoredBottomSheet 到您的 Xcode 项目中,请在您的 Cartfile
中指定它
github "havebeenfitz/anchoredbottomsheet" "1.6.2"
运行 carthage update
来构建框架,并将构建好的 SnapKit.framework
拖拽到您的 Xcode 项目中。
Swift 包管理器
Swift 包管理器 是一个用于管理 Swift 代码分发的工具。它与 Swift 构建系统集成,以自动化下载、编译和链接依赖项的过程。
使用 Swift 包管理器构建 AnchoredBottomSheet 需要 Xcode 11 或更高版本。
要使用 Swift 包管理器将 AnchoredBottomSheet 集成到您的 Xcode 项目中,将其添加到您的 Package.swift
依赖项值中。
dependencies: [
.package(
url: "https://github.com/havebeenfitz/anchoredbottomsheet.git",
.upToNextMajor(from: "1.6.2")
)
]
手动
如果您不想使用上述任何一个依赖管理器,您可以手动将 AnchoredBottomSheet 集成到您的项目中。
要求
Xcode 12+,iOS 目标版本 ≥ 12
作者
havebeenfitz,[email protected]
许可协议
AnchoredBottomSheet 使用 MIT 许可证。详细信息请参阅 LICENSE 文件。