在平时的
iOS
开发过程中,少不了要使用很多的框架,一个适合的框架能够将开发效率提高几倍,这里将一些不错的Swift
框架收集起来,有需要的可以收藏一下。
另外
简书
没有目录导航功能,文章较长可能不太好找自己想要的框架,可以到我的博客去看,有导航找起来很方便,这是 传送门 。
弹框提示
XLActionController - 选择框
★ Star:2088
XLActionController
是一个支持各种自定义的底部选择框。
SCLAlertView - 提示框
★ Star:3937
SCLAlertView
是一个非常漂亮的提示框,Swift
和 OC
都有,OC
版本点击 这里 。
参考文章:
PopupDialog - 提示框
★ Star:2056
PopupDialog
是一个非常不错的 AlertView
框架,支持各种自定义。
SwiftMessages - 信息提示
★ Star:2293
SwiftMessages
是一个信息提示框架,可以自定义提示位置和样式。
AMPopTip - 文字提示
★ Star:1878
AMPopTip
是一个漂亮的气泡文字提示框架,并且支持 Objective-C
和 Swift
。
EasyTipView - 文字提示
★ Star:1621
EasyTipView
是一个完全可自定义的提示视图框架。
动画框架
Hero - 过渡动画
★ Star:10098
Hero
是为了构建 iOS
试图控制器过渡动画的库,它在 UIKit
繁琐的过渡动画 API
之上提供了一个层,使得自定义过渡动画对于开发人员来说是一个轻松的任务。
参考文章:
(IOS) 向Hero致敬與分析 (一) - Double研究所
(IOS) 向Hero致敬與分析 (二) - Double研究所
EasyAnimation - 简单动画
★ Star:2449
在动画实现过程中,一个看似简单的效果往往需要大量的代码,尤其是作用于 layer
上的动画,为此有了 EasyAnimation
这个库,这个库可以将 Layer Animations
写成 View Animations
的样式。
参考文章:
iOS动画指南 - 2.Layer Animations的基本使用
iOS动画指南 - 3.Layer Animations的进阶使用
iOS动画指南 - 7.简化动画实现的EasyAnimation库
Spring - 动画框架
★ Star:11134
Spring
是一个使用非常简单的动画框架。
PeekPop - 3D Touch 动画
★ Star:1836
PeekPop
是一个 3D Touch
动画框架。
Animations - 动画库
★ Star:2184
Animations
不是一个 CocoaPods
库,但是其中写了很多关于各种动画的 Demo
页面,很多都是经常用到的页面,页面效果写的非常棒,Swift
和 Objective-C
版本都有,Objective-C
版本点击 这里 。
图片显示
Kingfisher - 网络图片
★ Star:9333
Kingfisher
是一个轻量、纯 Swift
的库,可以从网络中异步下载和缓存图片,相当于 Swift
版的 SDWebImage
。
参考文章:
Onboard - 导航页
★ Star:5676
Onboard
是一个导航页框架,只需几行代码,即可轻松创建漂亮,引人入胜的用户指导页体验。
参考文章:
FSPagerView - 图片轮播
★ Star:1816
FSPagerView
是一款基于 UICollectionView
实现的多功能轮播器,具有以下特点:
- 支持无限轮播和自动轮播。
- 丰富的内置
3D / 2D
切换效果。 - 带有预定义的轮播图单元格,支持完全自定义单元格。
- 支持在
Swift
和Objective-C
两种语言中使用。 - 支持完全自定义的
Page Control
。
TZImagePickerController - 图片选择器
★ Star:3808
TZImagePickerController
是一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能。
ZLPhotoBrowser - 图片选择器
★ Star:1276
ZLPhotoBrowser
是一个方便易用的相册多选框架,支持预览/相册内拍照、预览快速多选照片,3DTouch
预览照片,编辑裁剪图片,编辑视频,混合多选 image、gif、Live Photo 及 video
,相册混合选择,原图功能,支持多语言国际化(中文简/繁,英语,日语),在线下载 iCloud
端图片,自定义最大选择量及最大预览量,自定义照片升序降序排列,自定义照片显示圆角弧度,支持预览网络及本地图片。
功能介绍:
- 支持横竖屏 (已适配
iPhone X
) - 预览快速选择、可设置预览最大数
- 直接进入相册选择
- 支持滑动多选
- 裁剪图片(可自定义裁剪比例)
- 编辑视频
- 查看、选择
gif、LivePhoto(iOS9.0)、video
-
3D Touch
预览image、gif、LivePhoto、video
- 混合选择
image、gif、livePhoto、video
- 在线下载
iCloud
照片 - 控制选择
video
最大时长 - 多语言国际化(中文简/繁、英文、日文)
- 相册内拍照按钮实时显示镜头捕捉画面
- 已选择图片遮罩层标记
- 预览已选择照片
- 预览网络及本地照片(支持长按保存至相册)
- 相册内图片自定义圆角弧度
- 自定义升序降序排列
- 多张拍照
CBPic2ker - 图片选择器
★ Star:225
CBPic2ker
是一个简单的 iOS
照片选择器,界面非常简洁。
PYPhotoBrowser - 图片浏览器
★ Star:1574
PYPhotoBrowser
是一个 iOS
中使用简单的图片浏览器,支持流水布局 、 线性布局,支持单击 、双击 、捏合 、旋转、拖拽、侧滑手势,主要用于社交 App
,用于呈现一组图片。
颜色管理
Chameleon - 颜色框架
★ Star:9722
Chameleon
是一个轻量却功能强大的 iOS
(支持 Objective-C
和 Swift
)颜色框架软件,它基于的理念是:软件应用程序应该可以不费力气且同时保持多个漂亮的界面,使用 Chameleon
,你不再需要调配 RGB
值,不用浪费时间去找你的 APP
合适的颜色组合,也不用担心你 APP
的文字是否能在不同背景色上可读。
参考文章:
DynamicColor - 颜色框架
★ Star:1664
DynamicColor
是一个用于操作颜色的 Swift
扩展。
权限请求
PermissionScope - 系统权限请求
★ Star:4457
PermissionScope
是一个请求权限的封装库,可以很方便的请求系统的权限。它不只包含简单的权限请求 UI
,还有统一的权限 API
可以告诉你任意给定的系统权限的状态,当然也可以轻松地请求它们。
参考文章:
【第三方库初级使用系列】PermissionScope的使用方法
RequestPermission - 权限请求
★ Star:1556
RequestPermission
是关于使用可定制的视觉效果管理权限,美丽的对话增加了批准的机会,这在我们要求通知时很重要,该模块的简单控制可节省开发时间,您可以开始使用这个项目,只需两行代码就能轻松自定义。
网络请求
Alamofire - 网络请求
★ Star:24794
Alamofire
的前身是AFNetworking
,AFNetworking
是iOS
和OS X
上很受欢迎的第三方HTTP
网络基础库。其实
AFNetworking
的前缀AF
便是Alamofire
的缩写。Swift
发布后,AFNetworking
的作者又用Swift
语言写了个相同功能的库,这便是Alamofire
。Alamofire
本质是基于URLSession
,并做了封装。使用Alamofire
可以让我们网络请求相关代码(如获取数据
,提交数据
,上传文件
,下载文件
等)更加简洁易用。
参考文章:
Swift - HTTP网络操作库Alamofire使用详解1(配置,以及数据请求)
Swift - HTTP网络操作库Alamofire使用详解2(文件上传)
Swift - HTTP网络操作库Alamofire使用详解3(文件下载,断点续传)
Swift - HTTP网络操作库Alamofire使用详解4(用户权限认证)
HandyJSON - JSON 模型转化
★ Star:1231
HandyJSON
是一个用于 Swift
语言中的 JSON
序列化 / 反序列化库,相当于 Swift
版的 MJExtension
和 YYModel
,能够将 JSON
和 模型
相互转化,可以和 Alamofire
搭配使用。
模型转 JSON(序列化)
class Person: HandyJSON {
required init() {}
var name: String!
var age: Int!
}
let person = Person()
person.name = "张三"
person.age = 20
print(person.toJSON()!) // 转换成 Dictionary 字典
print(person.toJSONString()!) // 转换成 JSON 字符串
print(person.toJSONString(prettyPrint: true)!) // 转换成有格式的 JSON 字符串
JSON 转模型(反序列化)
let json: NSDictionary = ["name": "张三", "age": 20]; // 可以是 JSON 字符串,也可以是字典(只能 NSDictionary)
if let person = Person.deserialize(from: json) {
print(person.name)
print(person.age)
}
SwiftyJSON - JSON 解析
★ Star:15207
SwiftyJSON
是个使用 Swift
语言编写的开源库,可以让我们很方便地处理 JSON
数据(解析数据、生成数据),和 HandyJSON
有着完全不同的作用,是将 iOS
自带的 JSONSerialization
大大的简化了。
JSONSerialization 复杂代码
if let dataArray = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? [[String: Any]],
let user = dataArray[0]["user"] as? [String: Any],
let name = user["name"] as? String {
print(name)
}
SwiftyJSON 简化代码
let json = JSON(data: data)
if let name = json[0]["user"]["name"].string {
print(name)
}
SwiftyJSON
还有一个能够和 Alamofire
配套使用的库:Alamofire-SwiftyJSON ,能够直接将 Alamofire
请求到的数据转换成 SwiftyJSON
。
Alamofire.request(URL, method: .get, parameters: parameters, encoding: URLEncoding.default).responseSwiftyJSON { dataResponse in
print(dataResponse.request)
print(dataResponse.response)
print(dataResponse.error)
print(dataResponse.value)
})
参考文章:
Swift - SwiftyJSON的使用详解(附样例,用于JSON数据处理)
Moya - 抽象网络层
★ Star:6718
Moya
是你的 App
中缺失的网络层。不用再去想在哪儿或者如何安放网络请求,Moya
替你管理。Moya
是一个基于 Alamofire
的 Networking library
,并且添加了对于 ReactiveCocoa
和 RxSwift
的接口支持,大大简化了开发过程,是 Reactive Functional Programming
的网络层首选。
参考文章:
简化编程
ReactiveCocoa - 响应式编程
★ Star:17694
RactiveCocoa
简称 RAC
,是 Github
的一个开源框架,能够帮我们提供大量方便的事件处理方案,让我们更简单粗暴地去处理事件,现在分为 ReactiveObjC 和 ReactiveSwift ,两个框架的功能使用相似。
参考文章:
Hello ReactiveSwift(1): 概述 ——(简译)
Hello ReactiveSwift(2): 示例:在线搜索 ——(简译)
Hello ReactiveSwift(3): 基本操作 ——(简译)
Hello ReactiveSwift(4): 框架概述 ——(简译)
Hello ReactiveSwift(5): 调试技术 ——(简译)
RxSwift - 响应式编程
★ Star:10382
RxSwift
也是一个响应式编程的框架,想了解它与 ReactiveCocoa
的区别,可以看这篇文章:iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好 。
参考文章:
RxSwift文档翻译1-Creating and Subscribing to Observables
RxSwift文档翻译2--Working with Subjects
RxSwift文档翻译3 --Combination Operators
RxSwift文档翻译4-- Transforming Operators
RxSwift文档翻译5 -- Filtering and Conditional Operators
RxSwift文档翻译6 -- Mathematical and Aggregate Operators
RxSwift文档翻译7 - Connectable Operators【待定】
RxSwift文档翻译8 - Error Handling Operators
RxSwift文档翻译9 - Debugging Operators
PromiseKit - 异步编程
★ Star:8060
PromiseKit
是一个异步编程类库,提供了很多实用的异步函数,让异步编程更简单。
参考文章:
Material - 材料设计库
★ Star:8324
Material
是一个用于创建漂亮应用程序的材料设计库,就如同它的名字一样,其中包含了大多数开发中需要的控件,并且也提供了非常多基础类的扩展,能够大大的简化我们的代码。
EZSwiftExtensions - 扩展
★ Star:2163
EZSwiftExtensions
对 Swift
标准库、 Foundation
、 UIKit
提供了很多高级扩展函数。
下面举几个例子,具体用法在 GitHub
上都有。
var myArray = ["charmander","bulbasaur","squirtle","charmander"]
print(myArray.get(1)) // "bulbasaur"
print(myArray.random()) // 数组中随机一个
print(myArray.indexesOf("charmander")) // [0,3]
print(myArray.containsArray(["charmander","bulbasaur"])) // true
print(myArray.containsArray(["string"])) // false
let myView = UIView(x: 0, y: 0, w: 100, h: 100)
print(myView.frame) // (0.0, 0.0, 100.0, 100.0)
print(myView.x) // 0.0
print(myView.y) // 0.0
print(myView.w) // 100.0
print(myView.h) // 100.0
myView.x = 115 // 还可以改变数值
print(myView.x) // 115.0
let myColor = UIColor(r: 100, g: 100, b: 100) // 默认 alpha 为 1
开发调试
Dotzu - 调试工具
★ Star:1166
Dotzu
是一个应用内 iOS
调试工具,具有增强的日志记录,网络信息,崩溃报告等,并且也有 Objective-C
版本点击 这里 。
GDPerformanceView - 实时 FPS 和 CPU 用量
★ Star:1494
GDPerformanceView
可以在状态栏上方显示 FPS
、CPU
使用情况、App
和 iOS
版本,并通过 Delegate
报告 FPS
和 CPU
使用情况。
扫二维码
swiftScan - 二维码扫描
★ Star:569
swiftScan
是一个二维码库,支持各种码识别、生成、以及界面效果。
功能介绍:
- 扫码框周围区域背景色可设置
- 扫码框颜色可也设置
- 扫码框4个角的颜色可设置、大小可设置
- 可设置只识别扫码框内的图像区域
- 可设置扫码成功后,获取当前图片
- 根据扫码结果,截取码的部分图像(在模仿qq扫码界面,扫码成功后可看到)
- 动画效果选择:线条上下移动、网格形式移动、中间线条不移动(一般扫码条形码的效果)
SGQRCode - 二维码扫描
★ Star:624
SGQRCode
是一个二维码库,支持各种码识别、生成、以及界面效果,是一个 OC
框架。
功能介绍:
- 普通二维码生成
- 彩色二维码生成
- 带有小图标二维码生成
- 根据光线强弱开启手电筒
- 从相册中读取二维码
- 扫描成功之后提示音
- 扫描成功之后界面之间的跳转
- 扫描界面仿微信(请根据项目需求,自行布局或调整)
- 扫描界面可自定义(扫描线条以及网格样式)
数据存储
Realm - 数据库
★ Star:11158
Realm
于 2014
年 7
月发布,是一个跨平台的移动数据库引擎,专门为移动应用的数据持久化而生,其目的是要取代 Core Data
和 SQLite
,Realm
不是基于 Core Data
,也不是基于 SQLite
封装构建的,它有自己的数据库存储引擎,具有 跨平台
、简单易用
、可视化
等优点,这是 中文官方文档地址 。
参考文章:
Valet - 钥匙串存储
★ Star:2681
Valet
允许你安全的在 iOS
或 OS X
钥匙链中存储数据,而不需要掌握任何钥匙链如何工作的知识。它支持在一台设备的多个应用(同一个开发者)间分享数据,以及在一个应用中在多个设备间利用 iCloud
进行分享,同时支持 Touch ID
。
SwiftyUserDefaults - UserDefaults 框架
★ Star:2719
SwiftyUserDefaults
让 UserDefaults
用起来很愉悦,通过结合意味深长的 Swifty API
和静态输入的益处,在一个地方定义键,轻松地使用值类型,获得额外的安全性和方便的编译时检查,这些都是免费的。
参考文章:
用 SwiftyUserDefaults 操作 NSUserDefaluts
GVUserDefaults - UserDefaults 框架
★ Star:880
GVUserDefaults
让 UserDefaults
用起来更加简单,之前使用 [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"]
而现在只需要使用 [GVUserDefaults standardUserDefaults].userName
就能完成,这是一个 Objective-C
框架,Swift
版还没有,可以用上面的 SwiftyUserDefaults 。
参考文章:
时间日期
FSCalendar - 日历
★ Star:4882
FSCalendar
是一个完全自定义的 iOS
日历库,兼容 Objective-C
和 Swift
,支持横向、纵向滑动模式,全屏模式,带有子标题、事件设置等功能。
参考文章:
FSCalendar使用介绍(一) - Hello World
Timepiece - 时间日期
★ Star:2206
Timepiece
是一个直观的日期处理框架。
DateTools - 日期工具
★ Star:5918
DateTools
是一个让时间日期处理起来更加简单的一个框架,并且 Swift
和 Objective-C
版本都有 。
参考文章:
界面显示
IGListKit - UICollectionView 框架
★ Star:6452
IGListKit
是 Instagram
推出的新的 UICollectionView
框架,使用数据驱动,旨在创造一个更快更灵活的列表控件。
参考文章:
DZNEmptyDataSet - 空数据显示
★ Star:9042
在 iOS
开发中,经常会遇到页面无数据的情况,当没有数据时,页面一片空白,顿时令用户心情很不好,DZNEmptyDataSet
能够帮助你避免这个情况,不过 DZNEmptyDataSet
只有 OC
版本,在 Swift
中需要混编使用。
参考文章:
iOS开发之 - DZNEmptyDataSet 空白页占位图
[swift]使用DZNEmptyDataSet空数据占位图
Charts - 图表
★ Star:15438
Charts
可以说是最好的图表库了,是 MPAndroidChart 在 iOS
上的移植,具有漂亮的线图、饼图、条形图、分布图、气泡图、雷达图还有更多种类。
参考文章:
如何在 Swift 语言下使用 iOS Charts API 制作漂亮图表?
Objective-C 中 Charts 的 CombinedChart 使用汇总
DGElasticPullToRefresh - 下拉刷新
★ Star:2871
DGElasticPullToRefresh
是一个下拉刷新控件,具有非常棒的动画效果。
JSBadgeView - 角标控件
★ Star:1157
JSBadgeView
是一个可以自由定制的角标控件,使用起来也非常简单,暂时只有 Objective-C
版本。
参考文章:
DACircularProgress - 加载进度显示
★ Star:2248
DACircularProgress
是一个用来显示加载进度的控件,暂时只有 Objective-C
版本。
导航栏页
WRNavigationBar - 导航栏设置
★ Star:1299
WRNavigationBar
是一个导航栏设置工具,能够一行代码设置状态栏、导航栏按钮、标题、颜色、透明度,移动等。
参考文章:
超简单!!! iOS设置状态栏、导航栏按钮、标题、颜色、透明度,偏移等
KMNavigationBarTransition - 导航栏过渡效果
★ Star:2317
KMNavigationBarTransition
是一个用来统一管理导航栏转场以及当 push
或者 pop
的时候使动画效果更加顺滑的通用库,并且同时支持竖屏和横屏。
使用时不用 import
任何头文件,全部通过 Method Swizzling
在底层做了处理,你不用为这个库写一行代码,所有的改变都悄然发生。
本库的设计理念是使用者只用关心当前 view controller
导航栏的背景样式,而不用在 push
或者 pop
的时候处理各种背景样式。
当 push
的时候本库会保存消失的 view controller
导航栏的背景样式,当 pop
回去后就会还原成以前的样式,因此你不用考虑 pop
后各种导航栏样式改变的情况。同时你也不必考虑 push
后的情况,因为这个是被 push
的 view controller
本身需要考虑的。
SAHistoryNavigationViewController - 导航栏页面返回
★ Star:1497
SAHistoryNavigationViewController
是一个导航栏页面返回的库,当你重按返回按钮的时候,你可以选择之前 push
过的任何一个页面来返回,效果非常酷炫。
TLYShyNavBar - 导航栏滚动隐藏
★ Star:3458
TLYShyNavBar
可以帮助你在页面滚动时自动隐藏导航栏。
表格视图
MGSwipeTableCell - UITableViewCell 滑动菜单
★ Star:5623
MGSwipeTableCell
是一个易于使用的 UITableViewCell
子类,允许显示带有多种转换的可滑动按钮。
参考文章:
有关UITableViewCell的侧滑删除以及使用相关大神框架MGSwipeTableCell遇到的小问题
SWTableViewCell - UITableViewCell 滑动菜单
★ Star:6980
SWTableViewCell
也是一个易于使用的 UITableViewCell
子类,允许显示带有多种转换的可滑动按钮,是一个 Objective-C
框架。
SwipeCellKit - UITableViewCell 滑动菜单
★ Star:2668
SwipeCellKit
也是一个易于使用的 UITableViewCell
子类,允许显示带有多种转换的可滑动按钮。
滑动菜单
SwipeTableView - 滑动菜单
★ Star:1256
SwipeTableView
可以实现不同菜单的左右滑动切换,同时支持类似 tableview
的顶部工具栏悬停(既可以左右滑动,又可以上下滑动),兼容下拉刷新,自定义 collectionview
实现自适应 contentSize
还可实现瀑布流功能,是一个 Objective-C
框架。
RKSwipeBetweenViewControllers - 滑动菜单
★ Star:1675
RKSwipeBetweenViewControllers
能够实现在不同页面之间左右滑动切换,是一个 Objective-C
框架。
SwipeViewController - 滑动菜单
★ Star:462
SwipeViewController
使你可以修改导航栏,并实现滑动按钮,用户可以切换页面,同时用户也可以很容易地看到他所使用的页面。SwipeViewController
是从 RKSwipeBetweenViewControllers 这个库改造为 Swift
的,不仅将语法转换为 Swift
,还增加了一些功能和其他一些细微的变化。
SwipeMenuViewController - 滑动菜单
★ Star:383
SwipeMenuViewController
也是一个可以实现页面左右滑动的一个框架。
侧滑页面
MMDrawerController - 侧滑页面
★ Star:6505
MMDrawerController
是一个侧滑视图控制器,它的设计目的是支持越来越多的应用程序来利用侧滑,是一个 Objective-C
框架。
REFrostedViewController - 侧滑视图
★ Star:3043
REFrostedViewController
是一个侧滑控制器,这个框架是将整个视图侧滑出来,而不是将原来的视图给推过去,可以满足一下不同的需求,是一个 Objective-C
框架。
MSDynamicsDrawerViewController - 侧滑视图
★ Star:3312
MSDynamicsDrawerViewController
也是一个侧滑控制器,并且侧滑过程中会有一个反弹的动画效果,是一个 Objective-C
框架。
JVFloatingDrawer - 侧滑视图
★ Star:1430
JVFloatingDrawer
是一个浮动样式的侧滑页面,利用侧滑页面的应用程序越来越多,这个框架的侧滑效果看上去非常的棒。
CWLateralSlide - 侧滑视图
★ Star:439
CWLateralSlide
是一个非常简单的侧滑抽屉框架,目前有一些侧滑框架适用场景的局限性很高,且固定死的模板,比如设置一个 leftVC
,rightVC
,middleVC
为 TabbarVC
(根控制器),如果我要使用这种方式来实现侧滑,就必须根据它的要求来调整我们整个 APP
的架构,侵入型很高,新项目还好,老项目只能说,o shit!😁。假如界面要换交互方式,由于耦合高,替换成本是比较大的,而且侧滑的抽屉界面会一直存在内存里,展示在我们看不见的地方(屏幕外,或者根控制器下边)。
我们的优势: 没有所谓的 leftVC
,rightVC
,对整个项目没有任何限制和依赖,不需要设置啥 XXXTabbarController
这种根控制器,也没有任何需要继承自某某类~真正的0耦合、0侵入、0污染。使用极致简单,真正的大白话操作。侧滑的控制器拥有完整的生命周期函数调用。也就是说,侧滑的界面在隐藏的情况下,并不会对 App
产生额外的内存占用(正确的被释放)最重要的是简单:只要一行代码就能拥有一个侧滑抽屉。
FDFullscreenPopGesture - 全屏侧滑返回
★ Star:4704
FDFullscreenPopGesture
是一个简单的全屏侧滑返回框架,低耦合十分的轻量级。
其他框架
SnapKit - 自动布局
★ Star:10488
SnapKit
是一个优秀的第三方自适应布局库,它可以让 iOS
、OS X
应用更简单地实现自动布局(Auto Layout
),SnapKit
的前身是 Masonry ,一个 OC
版的布局库。
参考文章:
Swift - 自动布局库SnapKit的使用详解1(配置、使用方法、样例)
Swift - 自动布局库SnapKit的使用详解2(约束的更新、移除、重做)
Swift - 自动布局库SnapKit的使用详解3(约束优先级,约束做动画)
Swift - 自动布局库SnapKit的使用详解4(样例1:实现一个登录页面)
Swift - 自动布局库SnapKit的使用详解5(样例2:实现一个计算器界面)
AsyncDisplayKit - 异步界面渲染
★ Star:11858
AsyncDisplayKit
是 Facebook
在 2014
年开源的一个异步界面渲染库,她是构筑于 UIKit
之上的一个封装库,与 UIView
是平级的关系(同时提供 UIView bridge
接口)。
参考文章:
AsyncDisplayKit 系列教程 —— 为什么要使用 AsyncDisplayKit
AsyncDisplayKit 系列教程 —— ASTableView
AsyncDisplayKit 坑友教路 —— TouchUpInside
AsyncDisplayKit 系列教程 —— 添加一个 UIActivityIndicatorView 到 ASCellNode
FileKit - 文件管理
★ Star:1540
FileKit
是一个 Swift
框架,可以用来简单而直观地进行文件管理。
参考文章:
DeviceKit - 设备信息
★ Star:1491
DeviceKit
是 UIDevice
的值类型替换,可以轻松获取设备信息和电池电量。
RandomKit - 随机数
★ Star:1180
RandomKit
是一个简单易用的随机数据生成框架,RandomKit
基于一系列接口构建,因此我们也能非常方便地按相同风格添加一些自定义随机数据类型。
参考文章:
SwiftyStoreKit - 应用内购买
★ Star:2304
SwiftyStoreKit
是一个轻量的 App
内购框架,支持 iOS 8.0+
,tvOS 9.0+
和 macOS 10.10+
。
CryptoSwift - 数据加密
★ Star:4200
CryptoSwift
是一个加密相关的帮助函数实现,支持 md5
、sha1
、sha224
、sha256
等等。
IQKeyboardManager - 键盘自适应
★ Star:9631
IQKeyboardManager
是 iOS
中解决键盘弹起遮挡 UITextField / UITextView
的一种很实用的工具,无需输入任何代码,不需要额外的设置,使用 IQKeyboardManager
的你只需要将源文件添加到项目,并且支持 Objective-C
和 Swift
。
参考文章:
IQKeyboardManager("零行代码"解决键盘遮挡问题) 源码分析
iOS开发之 - 键盘处理神器 IQKeyboardManager
文章还会一直持续更新,有需要的可以收藏一下,觉得看起来麻烦的话,可以到我的博客去看,有导航找起来很方便,这是 传送门 。
将来的你,一定会感激现在拼命的自己,愿自己与读者的开发之路无限美好。