iOS常用第三方库
一、推荐使用的第三方库
1:基于响应式编程思想的oc
地址:https://github.com/ReactiveCocoa/ReactiveCocoa
2:hud提示框
地址:https://github.com/jdg/MBProgressHUD
3:XML/HTML解析
地址:https://github.com/topfunky/hpple
4:有文字输入时,能根据键盘是否弹出来调整自身显示内容的位置
地址:https://github.com/michaeltyson/TPKeyboardAvoiding
5:状态栏提示框
地址:https://github.com/jaydee3/JDStatusBarNotification
6:block工具包。将很多需要用delegate实现的方法整合成了block的形式
地址:https://github.com/zwaldowski/BlocksKit
7:图片加载
地址:https://github.com/rs/SDWebImage
8:正则表达式
地址:https://github.com/wezm/RegexKitLite
9:Masonry代码布局 (MyLinearLayout一个布局类库)
地址:https://github.com/SnapKit/Masonry
10:弹出窗
地址:https://github.com/sberrevoets/SDCAlertView
11:Button的样式
地址:https://github.com/mattlawer/BButton
12:验证网络连接状态
地址:https://github.com/tonymillion/Reachability
13:自动计算表格行高
地址:https://github.com/forkingdog/UITableView-FDTemplateLayoutCell
14:动画效果的启动页
地址:https://github.com/IFTTT/JazzHands
15:iOS快速简单集成国内三大平台分享
地址:https://github.com/xumeng/XMShareModule
16:五项能力值展示的五边形
地址:https://github.com/dsxNiubility/SXFiveScoreShow
17:自动识别网址号码邮箱和表情的label
地址:https://github.com/molon/MLEmojiLabel
18:IM对话功能的封装
地址:https://github.com/ZhipingYang/UUChatTableView
19:字典转模型框架
地址:https://github.com/CoderMJLee/MJExtension
20:下拉上拉刷数据
地址:https://github.com/CoderMJLee/MJRefresh
21:表格行左右划动菜单
地址:https://github.com/MortimerGoro/MGSwipeTableCell
22:图文混搭
地址:https://github.com/zhouande/TLAttributedLabel
23:可以简单展示在UINavigationBar下方,类似Music app的播放列表视图,弹出菜单视图
地址:https://github.com/DrummerB/BFNavigationBarDrawer
24:比如筛选、模糊、优化、蒙版、调整大小、旋转以及保存等等。同时还提供了一个UIImageView子类从URL异步加载图片,并在下载完毕时展示图片。
地址:https://github.com/Nyx0uf/NYXImagesKit
25:底部TabBar
地址:https://github.com/robbdimitrov/RDVTabBarController
26:表情面版
地址:https://github.com/ayushgoel/AGEmojiKeyboard
27:记录框架
地址:https://github.com/CocoaLumberjack/CocoaLumberjack
28:IOS与javascript交互
地址:https://github.com/marcuswestin/WebViewJavascriptBridge
29:图表统计展示
地址:https://github.com/kevinzhow/PNChart
30:appStore评分
地址:https://github.com/arashpayan/appirater
31:iOS-Categories 扩展类大全
地址:https://github.com/shaojiankui/IOS-Categories
32:扫描二维码,仿微信效果,带有扫描条
地址:https://github.com/JxbSir/JxbScanQR
33:动效弹出视图(弹出窗里面为文字,可以定义弹出的方向,及显示的时间)--AMPopTip
地址:https://github.com/andreamazz/AMPopTip
34:基于Masonry自动计算行高扩展
地址:https://github.com/632840804/HYBMasonryAutoCellHeight
35:模仿新浪微博弹出菜单
地址:https://github.com/wwdc14/HyPopMenuView
36:搜索历史标签
地址:https://github.com/zhiwupei/SearchHistory
37:快速集成新手引导的类库
地址:https://github.com/StrongX/XSportLight
38:设置页面的封装
地址:https://github.com/renzifeng/ZFSetting
39:带箭头的弹出视图插件
地址:https://github.com/xiekw2010/DXPopover
40:下拉菜单插件
地址:https://github.com/dopcn/DOPDropDownMenu/
41:表格空白提示插件
地址:https://github.com/dzenbot/DZNEmptyDataSet
42:给任意UIView视图四条边框加上阴影,可以自定义阴影的颜色、粗细程度、透明程度以及位置(上下左右边框)
地址:https://github.com/Seitk/UIView-Shadow-Maker
43:不错的日期时间插件
地址:https://github.com/CoderXL/UUDatePicker
44:底部弹出选择
地址:https://github.com/skywinder/ActionSheetPicker-3.0
45:比较不错的引导页面插件
地址:https://github.com/ealeksandrov/EAIntroView
46:两个APP跳转的插件
地址:https://github.com/usebutton/DeepLinkKit
47:本地存取NSUserDefaults插件
地址:https://github.com/gangverk/GVUserDefaults
48:NSArray 和 NSDictionary关于LINQ的操作方式,封装一些常用的操作
地址:https://github.com/ColinEberhardt/LinqToObjectiveC
49:可以监控网络请求的内容
地址:https://github.com/coderyi/NetworkEye
50:时间帮助插件,可以快速获取时间,比较,增加等操作
地址:https://github.com/MatthewYork/DateTools
51: 不错的链式动作
地址:https://github.com/jhurray/JHChainableAnimations
52:弹出层视图,背景效果(可以自定义视图的内容)
地址:https://github.com/HJaycee/JCAlertView
53:圆形进度条的显示,中间可显示值
地址:https://github.com/mdinacci/MDRadialProgress
54:很帅的数据加载动画(可以用于数据列表加载的展现)
地址:https://github.com/NghiaTranUIT/FeSpinner
55:一个开源的AFnetworking上层的封装(猿题库等运用)
地址:https://github.com/yuantiku/YTKNetwork
56:CBStoreHouseRefreshControl:一个效果很酷炫的下拉刷新控件
地址:https://github.com/coolbeet/CBStoreHouseRefreshControl
57:AFNetworking-RACExtensions:针对ReactiveCocoa的AF封装
地址:https://github.com/CodaFi/AFNetworking-RACExtensions
58:模糊效果(毛玻璃)
地址:https://github.com/nicklockwood/FXBlurView
二、基本流程使用的第三方库
![](http://upload-images.jianshu.io/upload_images/784630-21c65da9c975132a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
上述是有重复同一功能的,而如何选择呢,这个我们可以根据项目的具体情况来确定。
二、列表相关的轮子
![](http://upload-images.jianshu.io/upload_images/784630-fc843f83d1e527d4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- MJRefresh
- EGOTableViewPullRefresh:(这个不更新了,但刚开始用就是它,有感情)
- SVPullToRefresh
- UITableView+FDTemplateLayoutCell
- SWTableViewCell
- RETableViewManager: 自定义TableView 多种类型的展示。
其他还有很多类似功能的,这是我个人从中选择的几个,后续添加中......
三、图片相关的轮子
![](http://upload-images.jianshu.io/upload_images/784630-a107eb2c4b730e7b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
- FastImageCache:加载图片速度的优化,很厉害
PS:简友CoderKo1o加: PYPhotoBrowser (图片浏览,功能完善中···)
此处Browser 和 Picker 功能是有些重复的,还是看项目需求来选择吧。
四、其他可能用的轮子
4-1、偏工具类的轮子
-
IQKeyboardManager:零行代码解决键盘上移的问题
-
PNChart:各种图表的展示
- Charts:Swift Charts
- MMDrawerController:侧边栏的 Controller
- RESideMenu: QQ 侧边栏的效果
- ENSwiftSideMenu: 简洁版的侧滑菜单
- UUChatTableView:聊天对话的时候,可以参考
- JSQMessagesViewController:也是聊天对话的,个人认为更适合
- SAMKeychain: 保存keychain的
- AESCrypt-ObjC: AES 加密/解密
- BabyBluetooth: 一个易使用的蓝牙库
- BluetoothKit: 让我们更容易的操作蓝牙的封装库,Swift
- Mobileplayer-ios: Swift 媒体播放器
- PDTSimpleCalendar: 日历
- PYSearch: 搜索类中,有热门标签、历史记录标签。
- VTMagic : 类似网易、腾讯等应用的菜单分页组
- DLSlieView:也是类似网易上部选择导航的效果
- HMSegmentedControl:选择 (可以和DLSlieView比较一下)
- GUITabPagerViewController: 也是上部 tabBar 点击或滑动的效果
- WMPageController: 同上顶部导航VC 切换
- SDCycleScrollView: 循环轮播
- SCLAlertView: 自定义的UIAlertView,更漂亮哦
- Shimmer:具有闪烁效果的第三方控件
- TTTAttributedLabel: 富文本的Label
- JSBadgeView:类似系统的 Badge,购物车时常用
- JVFloatLabeledTextField: 特殊效果的textField
- TextFieldEffects: 有标注的textFiled
- VBFPopFlatButton: 各种稀奇古怪的动画button
- FXBlurView:对视图进行模糊操作
4-2、不一定常用,但很有意思的一些动画轮子
- CBStoreHouseRefreshControl:刷新时,不一样的动画
- LTMorphingLabel:很cool 的文字展示
- ZLSwipeableView : 不一样的翻页效果
- Animated-tab-bar: 有动画的tabBar
- Hamburger-button : 变换的 Button,个人比较喜欢
- Folding-cell:点击Cell 时,有折叠的动画效果,很赞
4-3、另外一些第三方库
- JSPatch:热修复,为项目动态添加模块,或替换项目原生代码动态修复 bug
- ReactiveCocoa: 函数响应式编程,使用 MVVM 搭
- RxSwift:Swift 函数响应式编程框架。
- BlocksKit: blocks 包,喜欢用 block的非常适合,学习 block 的好库。
- JKCategories:iOS 中常用到的 Category ,可以好好学习
- YYKit:庞大、丰富的 iOS 组件,也是学习的好地方。
- CocoaAsyncSocket:异步 socket 通讯类库
- GPUImage:图片过滤
- AsyncDisplayKit:将图像解码、布局以及渲染操作放在后台线程,带来更好的用户交互体验的框架。
- PromiseKit : 一个用来出来异步的编程框架(Swift)
暂时大部分记录的还是 Objective-C 相关的, 说真的 github 上还有好多优秀的轮子等待我们挖掘,当然有好的轮子也希望可以多互相分享,此处持续添加中······。
话又说回来,我个人还是一向 遵循尽量用苹果本身提供的 API 的原则,虽说与上面有矛盾。毕竟引入一个第三方库有时还是有一些不确定的因素的,如果可能,尽量自己开发和实现相应的功能,第三方库尽量只作为参考。 (当然一切以开发速度为第一的情况下,那就先用吧)
PS: 备注 下面链接中还有一些我们可能会用到的:
1、某公司用到的一些 iOS 开源库和第三方组件
2、TimLiu-iOS, 超多都看不过来
3、整理常用的iOS第三方资源