KYDrawerController安装配置教程:CocoaPods、手动导入与Storyboard 3种方式全解
【免费下载链接】KYDrawerControllerSide Drawer Navigation Controller similar to Android项目地址: https://gitcode.com/gh_mirrors/ky/KYDrawerController
KYDrawerController是一款模拟 Android 体验的 iOS 侧边抽屉导航控制器(Side Drawer Navigation Controller),支持 Storyboard 与 AutoLayout。本篇安装配置教程将带你用最短时间掌握 3 种接入方式:CocoaPods 一键安装、手动导入源码、Storyboard 可视化配置,并附上核心 API 速查,帮助新手快速上手。
一、认识 KYDrawerController:为什么选它?📱
KYDrawerController 是一个纯 Swift 编写的抽屉式导航容器控制器,让 iPhone App 拥有和 Android 一样的"侧滑抽屉菜单"体验:
- 侧边抽屉:从屏幕左/右边缘滑出,带阴影与背景遮罩效果
- 手势支持:屏幕边缘 Pan 手势打开、抽屉内拖拽关闭、点击遮罩收起
- 轻量零依赖:核心代码仅 3 个 Swift 文件,基于 AutoLayout 实现
- 双工作流:既可以用代码配置,也支持 Storyboard 可视化搭建
- 开源免费:采用 MIT 协议,当前 CocoaPods 版本为 2.1.0
核心源码非常精简,全部位于KYDrawerController/Classes/目录:
KYDrawerController/Classes/KYDrawerController.swift:主控制器,包含抽屉状态、方向、宽度、手势等全部逻辑KYDrawerController/Classes/KYEmbedDrawerControllerSegue.swift:Storyboard 中嵌入"抽屉页"的转场KYDrawerController/Classes/KYEmbedMainControllerSegue.swift:Storyboard 中嵌入"主页"的转场
项目还内置了两个完整示例工程,强烈建议边看边做:
Example/Code/:纯代码方式(Swift)示例Example/Storyboard/:Storyboard 方式(含 Objective-C 混编)示例
二、方式一:CocoaPods 一键安装(推荐新手)⚡
CocoaPods 是最省心的安装方式,一条依赖声明即可完成接入。
1. 在 Podfile 中声明依赖
打开你项目根目录的Podfile文件,在target块中加入:
pod 'KYDrawerController'2. 执行安装并打开工作空间
在终端中进入项目目录执行:
pod install之后请务必用.xcworkspace文件(而不是.xcodeproj)打开项目,否则依赖不会被链接。
💡 提示:podspec 中声明的部署目标为 iOS 8.0+,Swift 版本 4.2,主流 Xcode 环境均可直接使用。
安装完成后,在任意 Swift 文件顶部即可引入:
import KYDrawerController三、方式二:手动导入源码(离线/无网方案)📦
如果你不想使用 CocoaPods,或者项目要求离线依赖,手动导入也非常简单——因为整个库只有 3 个 Swift 文件。
最快手动导入步骤
第 1 步:获取项目源码。在终端中克隆仓库到本地:
git clone https://gitcode.com/gh_mirrors/ky/KYDrawerController第 2 步:把 Classes 文件夹拖入 Xcode 工程。将KYDrawerController/KYDrawerController/Classes/目录整体拖到你的 Xcode 项目中,在弹出的对话框勾选Copy items if needed和Create groups。
第 3 步:确认 Target 成员。在文件检查器(File Inspector)中确认这 3 个 Swift 文件都被勾选进了你的 App Target,编译通过即可使用。
这种方式的好处是完全掌控源码,随时可以阅读KYDrawerController.swift修改抽屉宽度、动画时长等默认行为。
四、方式三:Storyboard 可视化配置(4 步完成)🎨
KYDrawerController 原生支持 Storyboard,无需一行代码即可完成抽屉框架。官方示例工程Example/Storyboard/中有一份完整可运行的工程(含 Objective-C 混编版本)可供参考。
Storyboard 配置四步法
第 1 步:设置根控制器自定义类。在 Storyboard 中选中 Initial View Controller,在类检查器(Identity Inspector)中将 Custom Class 设置为KYDrawerController。
第 2 步:添加抽屉页并连线。拖入你的抽屉菜单 ViewController(如Menu),从KYDrawerController按住 Control 键拖出连线,选择Embed in类型,目标选KYEmbedDrawerControllerSegue。
第 3 步:添加主页并连线。同样地,为你的主页 ViewController 从KYDrawerController拉出Embed in连线,目标选KYEmbedMainControllerSegue。
第 4 步:填写 Segue 标识符。回到KYDrawerController的检查器面板,在Main Segue Identifier和Drawer Segue Identifier两个字段中,分别填入第 3、2 步连线对应的 Storyboard ID。控制器在viewDidLoad时会自动执行这两条转场,完成主页与抽屉页的嵌入。
这样,一个完整的侧边抽屉导航就搭建好了,接下来只需通过 API 控制开合。
五、核心 API 速查:打开、关闭与自定义 🛠️
无论哪种安装方式,使用 API 都是统一的。
1. 初始化与挂载(代码方式)
参考示例工程Example/Code/Code/AppDelegate.swift中的写法:
let drawerController = KYDrawerController(drawerDirection: .left, drawerWidth: 300) drawerController.mainViewController = UINavigationController(rootViewController: mainViewController) drawerController.drawerViewController = drawerViewController window?.rootViewController = drawerController2. 打开 / 关闭抽屉
drawerController.setDrawerState(.opened, animated: true) // 打开 drawerController.setDrawerState(.closed, animated: true) // 关闭3. 常用自定义属性一览
| 属性 | 默认值 | 说明 |
|---|---|---|
drawerDirection | .left | 抽屉方向,支持.left/.right |
drawerWidth | 280 | 抽屉宽度(pt) |
drawerAnimationDuration | 0.25 | 开关动画时长(秒) |
containerViewMaxAlpha | 0.2 | 打开时背景遮罩最大透明度 |
screenEdgePanGestureEnabled | true | 是否允许从屏幕边缘滑开抽屉 |
以上属性大多标注了@IBInspectable,在 Storyboard 检查器中也能直接调整。
4. 监听抽屉状态变化
实现KYDrawerControllerDelegate协议即可感知状态切换(协议定义见KYDrawerController/Classes/KYDrawerController.swift顶部):
func drawerController(_ drawerController: KYDrawerController, willChangeState state: KYDrawerController.DrawerState) func drawerController(_ drawerController: KYDrawerController, didChangeState state: KYDrawerController.DrawerState)典型用法:在willChangeState中收起键盘、暂停视频,在didChangeState中刷新状态栏样式。
六、常见问题与最佳实践 ✅
Q1:为什么从屏幕左边缘滑动打不开抽屉?检查screenEdgePanGestureEnabled是否为true,并确认drawerDirection与边缘方向一致(.left对应左侧边缘)。
Q2:抽屉里放 TableView 时手势冲突怎么办?KYDrawerController实现了UIGestureRecognizerDelegate,抽屉打开时主页的 Pan 手势会自动禁用,通常无需额外处理;若仍有冲突,可在抽屉子视图上适当设置cancelsTouchesInView相关手势属性。
Q3:如何在 Objective-C 项目中使用?先按"方式一"或"方式二"完成安装,之后通过import生成的桥接头文件即可调用,Example/Storyboard/Storyboard/MainViewControllerObjc.m提供了完整的 ObjC 调用示例:
KYDrawerController *drawer = (KYDrawerController *)self.navigationController.parentViewController; [drawer setDrawerState:DrawerStateOpened animated:YES];最佳实践清单:
- 主页建议包一层
UINavigationController,抽屉菜单建议用UITableViewController - 生产项目优先使用 CocoaPods 安装,锁定版本便于团队协作
- 动手前先把
Example/Code和Example/Storyboard两个示例跑通,能避开 90% 的坑 - 抽屉宽度建议设为屏幕宽度的 80%~85%(iPhone 上 280~320pt 视觉效果最佳)
至此,你已经掌握了KYDrawerController 安装配置教程的全部内容:CocoaPods 一键接入、手动导入 3 个文件的离线方案、Storyboard 4 步可视化搭建,以及开合控制、方向宽度自定义和代理监听等核心用法。动手把示例工程跑起来吧,一个 Android 风格的侧边抽屉导航就在几行代码之外!🚀
【免费下载链接】KYDrawerControllerSide Drawer Navigation Controller similar to Android项目地址: https://gitcode.com/gh_mirrors/ky/KYDrawerController
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考