JKDrawer 0.9.1

JKDrawer 0.9.1

Johan Kool 维护。



JKDrawer 0.9.1

  • Johan Kool

JKDrawer

为 iOS 提供类似地图的抽屉。

特性

  • 控制抽屉大小
  • 吸附到首选大小
  • 多个堆叠抽屉
  • 通过手势拖拽和关闭
  • 处理嵌套滚动视图
  • 微妙动画
  • 无需子类化视图控制器

CocoaPods Compatible Carthage Compatible Swift Package Manager Compatible

要求

  • iOS 10.0+
  • Xcode 10.2+
  • Swift 4+

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。有关用法和安装说明,请访问他们的网站。要使用 CocoaPods 将 JKDrawer 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它。

pod 'JKDrawer', '~> 0.6.0'

Carthage

Carthage 是一个去中心化的依赖管理工具,它可以构建你的依赖关系并提供二进制框架。要使用 Carthage 在你的 Xcode 项目中集成 JKDrawer,请在您的 Cartfile 中指定它。

github "johankool/Drawer" ~> 0.6.0

Swift 包管理器

Swift 包管理器 是一种用于自动化 Swift 代码分发的外部程序,它是 Xcode 11 及更高版本的一部分。要使用 Swift 包管理器在你的 Xcode 项目中集成 JKDrawer,请通过“文件 > Swift 包 > 添加包依赖”将此 URL 粘贴到 Xcode 中。

https://github.com/johankool/Drawer.git

使用方法

要使视图控制器可以作为抽屉显示,它必须遵循 DrawerPresentable 协议。该协议要求配置变量存在。这是一个指定了诸如初始偏移量和允许范围等特定方面的 DrawerConfiguration 结构。

class DrawerViewController: UIViewController, DrawerPresentable {

    var configuration = DrawerConfiguration(offset: 300, isDraggable: true, isClosable: false)

}

要显示的视图控制器必须遵循 DrawerPresenting 协议。一些方法具有默认实现,其他则提供了回调以方便使用。

class HostViewController: UIViewController, DrawerPresenting {

    func someAction() {
        let drawerViewController = DrawerViewController()
        openDrawer(drawerViewController, animated: true)
    }

    func willOpenDrawer(_ drawer: DrawerPresentable) {

    }

    func didOpenDrawer(_ drawer: DrawerPresentable) {

    }

    func willCloseDrawer(_ drawer: DrawerPresentable) {

    }

    func didCloseDrawer(_ drawer: DrawerPresentable) {

    }

    func didChangeSizeOfDrawer(_ drawer: DrawerPresentable, to size: CGFloat) {

    }

}

导航控制器

由于您不能在 UINavigationController 上打开抽屉,因此请考虑使用包含 UINavigationController 的自定义视图控制器,或者使用 DrawerNavigationController

许可证

版权所有 (c) 2018-2021 Johan Kool

根据 MIT 许可证 授予许可。