【iOS 开发】Swift 常用的 CocoaPods 开源库收集

CocoaPods

在平时的 iOS 开发过程中,少不了要使用很多的框架,一个适合的框架能够将开发效率提高几倍,这里将一些不错的 Swift 框架收集起来,有需要的可以收藏一下。

另外 简书 没有目录导航功能,文章较长可能不太好找自己想要的框架,可以到我的博客去看,有导航找起来很方便,这是 传送门


弹框提示

XLActionController - 选择框

★ Star:2088

XLActionController

XLActionController 是一个支持各种自定义的底部选择框。


SCLAlertView - 提示框

★ Star:3937

SCLAlertView

SCLAlertView 是一个非常漂亮的提示框,SwiftOC 都有,OC 版本点击 这里

参考文章:

SCLAlertView(提醒框)的基本使用(swift)


PopupDialog - 提示框

★ Star:2056

PopupDialog
预览图

PopupDialog 是一个非常不错的 AlertView 框架,支持各种自定义。


SwiftMessages - 信息提示

★ Star:2293

SwiftMessages

SwiftMessages 是一个信息提示框架,可以自定义提示位置和样式。


AMPopTip - 文字提示

★ Star:1878

AMPopTip

AMPopTip 是一个漂亮的气泡文字提示框架,并且支持 Objective-CSwift


EasyTipView - 文字提示

★ Star:1621

EasyTipView

EasyTipView 是一个完全可自定义的提示视图框架。


动画框架

Hero - 过渡动画

★ Star:10098

Hero

Hero 是为了构建 iOS 试图控制器过渡动画的库,它在 UIKit 繁琐的过渡动画 API 之上提供了一个层,使得自定义过渡动画对于开发人员来说是一个轻松的任务。

参考文章:

(IOS) 向Hero致敬與分析 (一) - Double研究所

(IOS) 向Hero致敬與分析 (二) - Double研究所


EasyAnimation - 简单动画

★ Star:2449

EasyAnimation

在动画实现过程中,一个看似简单的效果往往需要大量的代码,尤其是作用于 layer 上的动画,为此有了 EasyAnimation 这个库,这个库可以将 Layer Animations 写成 View Animations 的样式。

参考文章:

iOS动画指南 - 1.View Animations

iOS动画指南 - 2.Layer Animations的基本使用

iOS动画指南 - 3.Layer Animations的进阶使用

iOS动画指南 - 4.右拉的3D抽屉效果

iOS动画指南 - 5.下雪的粒子效果、帧动画

iOS动画指南 - 6.可以很酷的转场动画

iOS动画指南 - 7.简化动画实现的EasyAnimation库


Spring - 动画框架

★ Star:11134

Spring

Spring 是一个使用非常简单的动画框架。


PeekPop - 3D Touch 动画

★ Star:1836

PeekPop

PeekPop 是一个 3D Touch 动画框架。


Animations - 动画库

★ Star:2184

Animations

Animations 不是一个 CocoaPods 库,但是其中写了很多关于各种动画的 Demo 页面,很多都是经常用到的页面,页面效果写的非常棒,SwiftObjective-C 版本都有,Objective-C 版本点击 这里


图片显示

Kingfisher - 网络图片

★ Star:9333

Kingfisher

Kingfisher 是一个轻量、纯 Swift 的库,可以从网络中异步下载和缓存图片,相当于 Swift 版的 SDWebImage

参考文章:

Kingfisher 中文简介

Kingfisher 3.x 学习(一)

Kingfisher 3.x 学习(二)


Onboard - 导航页

★ Star:5676

Onboard

Onboard 是一个导航页框架,只需几行代码,即可轻松创建漂亮,引人入胜的用户指导页体验。

参考文章:

Onboard,迷人的引导页样式制作库

优美整洁的引导页大神框架Onboard


FSPagerView - 图片轮播

★ Star:1816

FSPagerView

FSPagerView 是一款基于 UICollectionView 实现的多功能轮播器,具有以下特点:

  • 支持无限轮播和自动轮播。
  • 丰富的内置 3D / 2D 切换效果。
  • 带有预定义的轮播图单元格,支持完全自定义单元格。
  • 支持在 SwiftObjective-C 两种语言中使用。
  • 支持完全自定义的 Page Control

TZImagePickerController - 图片选择器

★ Star:3808

TZImagePickerController

TZImagePickerController 是一个支持多选、选原图和视频的图片选择器,同时有预览、裁剪功能。


ZLPhotoBrowser - 图片选择器

★ Star:1276

ZLPhotoBrowser
预览图

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

CBPic2ker 是一个简单的 iOS 照片选择器,界面非常简洁。


PYPhotoBrowser - 图片浏览器

★ Star:1574

预览图

PYPhotoBrowser 是一个 iOS 中使用简单的图片浏览器,支持流水布局 、 线性布局,支持单击 、双击 、捏合 、旋转、拖拽、侧滑手势,主要用于社交 App ,用于呈现一组图片。


颜色管理

Chameleon - 颜色框架

★ Star:9722

Chameleon

Chameleon 是一个轻量却功能强大的 iOS (支持 Objective-CSwift)颜色框架软件,它基于的理念是:软件应用程序应该可以不费力气且同时保持多个漂亮的界面,使用 Chameleon ,你不再需要调配 RGB 值,不用浪费时间去找你的 APP 合适的颜色组合,也不用担心你 APP 的文字是否能在不同背景色上可读。

参考文章:

Chameleon——轻量级 iOS 颜色框架


DynamicColor - 颜色框架

★ Star:1664

DynamicColor

DynamicColor 是一个用于操作颜色的 Swift 扩展。


权限请求

PermissionScope - 系统权限请求

★ Star:4457

PermissionScope

PermissionScope 是一个请求权限的封装库,可以很方便的请求系统的权限。它不只包含简单的权限请求 UI ,还有统一的权限 API 可以告诉你任意给定的系统权限的状态,当然也可以轻松地请求它们。

参考文章:

【第三方库初级使用系列】PermissionScope的使用方法


RequestPermission - 权限请求

★ Star:1556

RequestPermission
预览图

RequestPermission 是关于使用可定制的视觉效果管理权限,美丽的对话增加了批准的机会,这在我们要求通知时很重要,该模块的简单控制可节省开发时间,您可以开始使用这个项目,只需两行代码就能轻松自定义。


网络请求

Alamofire - 网络请求

★ Star:24794

Alamofire
  • Alamofire 的前身是 AFNetworkingAFNetworkingiOSOS 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

JSON

HandyJSON 是一个用于 Swift 语言中的 JSON 序列化 / 反序列化库,相当于 Swift 版的 MJExtensionYYModel ,能够将 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

JSON

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

Moya 是你的 App 中缺失的网络层。不用再去想在哪儿或者如何安放网络请求,Moya 替你管理。Moya 是一个基于 AlamofireNetworking library,并且添加了对于 ReactiveCocoaRxSwift 的接口支持,大大简化了开发过程,是 Reactive Functional Programming 的网络层首选。

参考文章:

如何写出最简洁优雅的网络封装 Moya + RxSwift

用 RxSwift + Moya 写出优雅的网络请求代码


简化编程

ReactiveCocoa - 响应式编程

★ Star:17694

ReactiveCocoa

RactiveCocoa 简称 RAC ,是 Github 的一个开源框架,能够帮我们提供大量方便的事件处理方案,让我们更简单粗暴地去处理事件,现在分为 ReactiveObjCReactiveSwift ,两个框架的功能使用相似。

参考文章:

ReactiveObjC(RAC)的使用汇总

Hello ReactiveSwift(1): 概述 ——(简译)

Hello ReactiveSwift(2): 示例:在线搜索 ——(简译)

Hello ReactiveSwift(3): 基本操作 ——(简译)

Hello ReactiveSwift(4): 框架概述 ——(简译)

Hello ReactiveSwift(5): 调试技术 ——(简译)


RxSwift - 响应式编程

★ Star:10382

RxSwift

RxSwift 也是一个响应式编程的框架,想了解它与 ReactiveCocoa 的区别,可以看这篇文章:iOS响应式编程:ReactiveCocoa vs RxSwift 选谁好

参考文章:

[整理]RxSwift完全入坑手册

RxSwift的学习之路(一)——Observable

RxSwift的学习之路(二)——Subjects

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

PromiseKit 是一个异步编程类库,提供了很多实用的异步函数,让异步编程更简单。

参考文章:

PromiseKit 使用


Material - 材料设计库

★ Star:8324

Material

Material 是一个用于创建漂亮应用程序的材料设计库,就如同它的名字一样,其中包含了大多数开发中需要的控件,并且也提供了非常多基础类的扩展,能够大大的简化我们的代码。


EZSwiftExtensions - 扩展

★ Star:2163

EZSwiftExtensions

EZSwiftExtensionsSwift 标准库、 FoundationUIKit 提供了很多高级扩展函数。

下面举几个例子,具体用法在 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
预览图

Dotzu 是一个应用内 iOS 调试工具,具有增强的日志记录,网络信息,崩溃报告等,并且也有 Objective-C 版本点击 这里


GDPerformanceView - 实时 FPS 和 CPU 用量

★ Star:1494

GDPerformanceView

GDPerformanceView 可以在状态栏上方显示 FPSCPU 使用情况、AppiOS 版本,并通过 Delegate 报告 FPSCPU 使用情况。


扫二维码

swiftScan - 二维码扫描

★ Star:569

预览图

swiftScan 是一个二维码库,支持各种码识别、生成、以及界面效果。

功能介绍:

  • 扫码框周围区域背景色可设置
  • 扫码框颜色可也设置
  • 扫码框4个角的颜色可设置、大小可设置
  • 可设置只识别扫码框内的图像区域
  • 可设置扫码成功后,获取当前图片
  • 根据扫码结果,截取码的部分图像(在模仿qq扫码界面,扫码成功后可看到)
  • 动画效果选择:线条上下移动、网格形式移动、中间线条不移动(一般扫码条形码的效果)

SGQRCode - 二维码扫描

★ Star:624

预览图

SGQRCode 是一个二维码库,支持各种码识别、生成、以及界面效果,是一个 OC 框架。

功能介绍:

  • 普通二维码生成
  • 彩色二维码生成
  • 带有小图标二维码生成
  • 根据光线强弱开启手电筒
  • 从相册中读取二维码
  • 扫描成功之后提示音
  • 扫描成功之后界面之间的跳转
  • 扫描界面仿微信(请根据项目需求,自行布局或调整)
  • 扫描界面可自定义(扫描线条以及网格样式)

数据存储

Realm - 数据库

★ Star:11158

Realm

Realm20147 月发布,是一个跨平台的移动数据库引擎,专门为移动应用的数据持久化而生,其目的是要取代 Core DataSQLiteRealm 不是基于 Core Data ,也不是基于 SQLite 封装构建的,它有自己的数据库存储引擎,具有 跨平台简单易用可视化 等优点,这是 中文官方文档地址

参考文章:

Swift - Realm 数据库使用汇总

Swift - Realm 数据库的使用详解(附样例)

OC - Realm 数据库 从入门到“放弃”


Valet - 钥匙串存储

★ Star:2681

iCloud 钥匙串

Valet 允许你安全的在 iOSOS X 钥匙链中存储数据,而不需要掌握任何钥匙链如何工作的知识。它支持在一台设备的多个应用(同一个开发者)间分享数据,以及在一个应用中在多个设备间利用 iCloud 进行分享,同时支持 Touch ID


SwiftyUserDefaults - UserDefaults 框架

★ Star:2719

SwiftyUserDefaults

SwiftyUserDefaultsUserDefaults 用起来很愉悦,通过结合意味深长的 Swifty API 和静态输入的益处,在一个地方定义键,轻松地使用值类型,获得额外的安全性和方便的编译时检查,这些都是免费的。

参考文章:

用 SwiftyUserDefaults 操作 NSUserDefaluts


GVUserDefaults - UserDefaults 框架

★ Star:880

GVUserDefaults

GVUserDefaultsUserDefaults 用起来更加简单,之前使用 [[NSUserDefaults standardUserDefaults] objectForKey:@"userName"] 而现在只需要使用 [GVUserDefaults standardUserDefaults].userName 就能完成,这是一个 Objective-C 框架,Swift 版还没有,可以用上面的 SwiftyUserDefaults

参考文章:

GVUserDefaults学习笔记


时间日期

FSCalendar - 日历

★ Star:4882

FSCalendar

FSCalendar 是一个完全自定义的 iOS 日历库,兼容 Objective-CSwift ,支持横向、纵向滑动模式,全屏模式,带有子标题、事件设置等功能。

参考文章:

FSCalendar使用介绍(一) - Hello World

FSCalendar使用介绍(二) - 农历、事件

FSCalendar使用介绍(三) - 订制


Timepiece - 时间日期

★ Star:2206

Timepiece

Timepiece 是一个直观的日期处理框架。


DateTools - 日期工具

★ Star:5918

DateTools

DateTools 是一个让时间日期处理起来更加简单的一个框架,并且 SwiftObjective-C 版本都有 。

参考文章:

DateTools使用「日期工具库」

DateTools,可能是最好用的iOS日期工具库


界面显示

IGListKit - UICollectionView 框架

★ Star:6452

IGListKit

IGListKitInstagram 推出的新的 UICollectionView 框架,使用数据驱动,旨在创造一个更快更灵活的列表控件。

参考文章:

Instagram 开源IGListKit学习

Instagram/IGListKit实践谈

IGListKit 教程


DZNEmptyDataSet - 空数据显示

★ Star:9042

DZNEmptyDataSet

iOS 开发中,经常会遇到页面无数据的情况,当没有数据时,页面一片空白,顿时令用户心情很不好,DZNEmptyDataSet 能够帮助你避免这个情况,不过 DZNEmptyDataSet 只有 OC 版本,在 Swift 中需要混编使用。

参考文章:

iOS开发之 - DZNEmptyDataSet 空白页占位图

DZNEmptyDataSet——空白数据集显示框架

[swift]使用DZNEmptyDataSet空数据占位图


Charts - 图表

★ Star:15438

Charts

Charts 可以说是最好的图表库了,是 MPAndroidChartiOS 上的移植,具有漂亮的线图、饼图、条形图、分布图、气泡图、雷达图还有更多种类。

参考文章:

如何在 Swift 语言下使用 iOS Charts API 制作漂亮图表?

Objective-C 中 Charts 的 CombinedChart 使用汇总


DGElasticPullToRefresh - 下拉刷新

★ Star:2871

DGElasticPullToRefresh

DGElasticPullToRefresh 是一个下拉刷新控件,具有非常棒的动画效果。


JSBadgeView - 角标控件

★ Star:1157

JSBadgeView

JSBadgeView 是一个可以自由定制的角标控件,使用起来也非常简单,暂时只有 Objective-C 版本。

参考文章:

角标 - JSBadgeView的基本使用


DACircularProgress - 加载进度显示

★ Star:2248

DACircularProgress

DACircularProgress 是一个用来显示加载进度的控件,暂时只有 Objective-C 版本。


导航栏页

WRNavigationBar - 导航栏设置

★ Star:1299

WRNavigationBar

WRNavigationBar 是一个导航栏设置工具,能够一行代码设置状态栏、导航栏按钮、标题、颜色、透明度,移动等。

参考文章:

超简单!!! iOS设置状态栏、导航栏按钮、标题、颜色、透明度,偏移等


KMNavigationBarTransition - 导航栏过渡效果

★ Star:2317

KMNavigationBarTransition

KMNavigationBarTransition 是一个用来统一管理导航栏转场以及当 push 或者 pop 的时候使动画效果更加顺滑的通用库,并且同时支持竖屏和横屏。
使用时不用 import 任何头文件,全部通过 Method Swizzling 在底层做了处理,你不用为这个库写一行代码,所有的改变都悄然发生。
本库的设计理念是使用者只用关心当前 view controller 导航栏的背景样式,而不用在 push 或者 pop 的时候处理各种背景样式。
push 的时候本库会保存消失的 view controller 导航栏的背景样式,当 pop 回去后就会还原成以前的样式,因此你不用考虑 pop 后各种导航栏样式改变的情况。同时你也不必考虑 push 后的情况,因为这个是被 pushview controller 本身需要考虑的。


SAHistoryNavigationViewController - 导航栏页面返回

★ Star:1497

SAHistoryNavigationViewController

SAHistoryNavigationViewController 是一个导航栏页面返回的库,当你重按返回按钮的时候,你可以选择之前 push 过的任何一个页面来返回,效果非常酷炫。


TLYShyNavBar - 导航栏滚动隐藏

★ Star:3458

TLYShyNavBar
TLYShyNavBar

TLYShyNavBar 可以帮助你在页面滚动时自动隐藏导航栏。


表格视图

MGSwipeTableCell - UITableViewCell 滑动菜单

★ Star:5623

MGSwipeTableCell.gif

MGSwipeTableCell 是一个易于使用的 UITableViewCell 子类,允许显示带有多种转换的可滑动按钮。

参考文章:

MGSwipeTableCell的使用

继承MGSwipeTableCell无法滑动的问题

有关UITableViewCell的侧滑删除以及使用相关大神框架MGSwipeTableCell遇到的小问题


SWTableViewCell - UITableViewCell 滑动菜单

★ Star:6980

SWTableViewCell

SWTableViewCell 也是一个易于使用的 UITableViewCell 子类,允许显示带有多种转换的可滑动按钮,是一个 Objective-C 框架。


SwipeCellKit - UITableViewCell 滑动菜单

★ Star:2668

SwipeCellKit

SwipeCellKit 也是一个易于使用的 UITableViewCell 子类,允许显示带有多种转换的可滑动按钮。


滑动菜单

SwipeTableView - 滑动菜单

★ Star:1256

SwipeTableView
SwipeTableView

SwipeTableView 可以实现不同菜单的左右滑动切换,同时支持类似 tableview 的顶部工具栏悬停(既可以左右滑动,又可以上下滑动),兼容下拉刷新,自定义 collectionview 实现自适应 contentSize 还可实现瀑布流功能,是一个 Objective-C 框架。


RKSwipeBetweenViewControllers - 滑动菜单

★ Star:1675

RKSwipeBetweenViewControllers

RKSwipeBetweenViewControllers 能够实现在不同页面之间左右滑动切换,是一个 Objective-C 框架。


SwipeViewController - 滑动菜单

★ Star:462

SwipeViewController

SwipeViewController 使你可以修改导航栏,并实现滑动按钮,用户可以切换页面,同时用户也可以很容易地看到他所使用的页面。SwipeViewController 是从 RKSwipeBetweenViewControllers 这个库改造为 Swift 的,不仅将语法转换为 Swift ,还增加了一些功能和其他一些细微的变化。


SwipeMenuViewController - 滑动菜单

★ Star:383

SwipeMenuViewController
SwipeMenuViewController
SwipeMenuViewController

SwipeMenuViewController 也是一个可以实现页面左右滑动的一个框架。


侧滑页面

MMDrawerController - 侧滑页面

★ Star:6505

MMDrawerController

MMDrawerController 是一个侧滑视图控制器,它的设计目的是支持越来越多的应用程序来利用侧滑,是一个 Objective-C 框架。


REFrostedViewController - 侧滑视图

★ Star:3043

REFrostedViewController

REFrostedViewController 是一个侧滑控制器,这个框架是将整个视图侧滑出来,而不是将原来的视图给推过去,可以满足一下不同的需求,是一个 Objective-C 框架。


MSDynamicsDrawerViewController - 侧滑视图

★ Star:3312

MSDynamicsDrawerViewController

MSDynamicsDrawerViewController 也是一个侧滑控制器,并且侧滑过程中会有一个反弹的动画效果,是一个 Objective-C 框架。


JVFloatingDrawer - 侧滑视图

★ Star:1430

JVFloatingDrawer

JVFloatingDrawer 是一个浮动样式的侧滑页面,利用侧滑页面的应用程序越来越多,这个框架的侧滑效果看上去非常的棒。


CWLateralSlide - 侧滑视图

★ Star:439

CWLateralSlide

CWLateralSlide 是一个非常简单的侧滑抽屉框架,目前有一些侧滑框架适用场景的局限性很高,且固定死的模板,比如设置一个 leftVCrightVCmiddleVCTabbarVC(根控制器),如果我要使用这种方式来实现侧滑,就必须根据它的要求来调整我们整个 APP 的架构,侵入型很高,新项目还好,老项目只能说,o shit!😁。假如界面要换交互方式,由于耦合高,替换成本是比较大的,而且侧滑的抽屉界面会一直存在内存里,展示在我们看不见的地方(屏幕外,或者根控制器下边)。

我们的优势: 没有所谓的 leftVCrightVC ,对整个项目没有任何限制和依赖,不需要设置啥 XXXTabbarController 这种根控制器,也没有任何需要继承自某某类~真正的0耦合、0侵入、0污染。使用极致简单,真正的大白话操作。侧滑的控制器拥有完整的生命周期函数调用。也就是说,侧滑的界面在隐藏的情况下,并不会对 App 产生额外的内存占用(正确的被释放)最重要的是简单:只要一行代码就能拥有一个侧滑抽屉。


FDFullscreenPopGesture - 全屏侧滑返回

★ Star:4704

FDFullscreenPopGesture

FDFullscreenPopGesture 是一个简单的全屏侧滑返回框架,低耦合十分的轻量级。


其他框架

SnapKit - 自动布局

★ Star:10488

SnapKit.png

SnapKit 是一个优秀的第三方自适应布局库,它可以让 iOSOS 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

AsyncDisplayKitFacebook2014 年开源的一个异步界面渲染库,她是构筑于 UIKit 之上的一个封装库,与 UIView 是平级的关系(同时提供 UIView bridge 接口)。

参考文章:

AsyncDisplayKit官方文档翻译

AsyncDisplayKit 系列教程 —— 为什么要使用 AsyncDisplayKit

AsyncDisplayKit 系列教程 —— 集成、示例

AsyncDisplayKit 系列教程 —— ASTableView

AsyncDisplayKit 坑友教路 —— TouchUpInside

AsyncDisplayKit 系列教程 —— 添加一个 UIActivityIndicatorView 到 ASCellNode


FileKit - 文件管理

★ Star:1540

FileKit

FileKit 是一个 Swift 框架,可以用来简单而直观地进行文件管理。

参考文章:

FileKit:Swift 实现简单快捷的文件管理工具


DeviceKit - 设备信息

★ Star:1491

DeviceKit

DeviceKitUIDevice 的值类型替换,可以轻松获取设备信息和电池电量。


RandomKit - 随机数

★ Star:1180

RandomKit

RandomKit 是一个简单易用的随机数据生成框架,RandomKit 基于一系列接口构建,因此我们也能非常方便地按相同风格添加一些自定义随机数据类型。

参考文章:

RandomKit 快速生成随机数据

Swift随机数产生


SwiftyStoreKit - 应用内购买

★ Star:2304

SwiftyStoreKit

SwiftyStoreKit 是一个轻量的 App 内购框架,支持 iOS 8.0+tvOS 9.0+macOS 10.10+


CryptoSwift - 数据加密

★ Star:4200

CryptoSwift

CryptoSwift 是一个加密相关的帮助函数实现,支持 md5sha1sha224sha256 等等。


IQKeyboardManager - 键盘自适应

★ Star:9631

IQKeyboardManager

IQKeyboardManageriOS 中解决键盘弹起遮挡 UITextField / UITextView 的一种很实用的工具,无需输入任何代码,不需要额外的设置,使用 IQKeyboardManager 的你只需要将源文件添加到项目,并且支持 Objective-CSwift

参考文章:

IQKeyboardManager("零行代码"解决键盘遮挡问题) 源码分析

iOS开发之 - 键盘处理神器 IQKeyboardManager


文章还会一直持续更新,有需要的可以收藏一下,觉得看起来麻烦的话,可以到我的博客去看,有导航找起来很方便,这是 传送门

将来的你,一定会感激现在拼命的自己,愿自己与读者的开发之路无限美好。

我的传送门: 博客简书微博GitHub

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,565评论 6 479
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,021评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,003评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,015评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,020评论 5 370
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,856评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,178评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,824评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,264评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,788评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,913评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,535评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,130评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,102评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,334评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,298评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,622评论 2 343

推荐阅读更多精彩内容