主要来记录最近做的项目当中所有用到的第三方库,对用到的轮子进行总结和归纳。
目前开发项目中,以已为例,不再像之前那样把所有的第三方库下到本地,再导入工程中,然后就是苦逼的开始往Linked Frameworks and Libriaries中添加各种不懂的文件,能捣鼓半天,自我感觉牛逼,实则是傻X的。
然则CocoaPods解决了这些繁琐的问题,所以开发项目用就行,不逻辑那么多了。
先来一个总览
CocoaPods管理 | 本地导入的三方库 |
---|---|
AFNetworking | Areapicker |
HMQRCodeScanner | GBTagListView |
HMSegmentedControl | KxMenu |
IQKeyboardManager | PlaceholderTextView |
JKCountDownButton | UIViewController+ImagePicker |
FDStackView | XLPasswordView |
MD5Digest | ZZPhotoKit |
MJExtension | |
MJRefresh | |
PPNetworkHelper | |
RatingBar | |
SDAutoLayout | |
SDCycleScrollView | |
SDWebImage | |
SVProgressHUD | |
UITextView+Placeholder | |
WZLBadge |
1.通过CocoaPods管理的第三方库
简单脑补一下podfile语法:
source 'URL' : 指定镜像仓库的源
platform : ios, '6.0' : 指定所支持系统和最低版本
target 'YOUR_TARGET' do : 允许你在工程中限定依赖项只在你指定的targets中生效
pod '库名', '' : 引入库,什么版本都可以(一般就是最新版本了)
AFNetworking
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
target 'TargetName' do
pod 'AFNetworking', '~> 3.0'
end
- 自不必过多解释,iOS开发几乎都离不开的吧。
- 正常情况下,开发之前都会对其进行二次封装,例如:有些需要对Post的参数进行简单的BASE64转换,虽然简单不至于信息直接暴露于外。
BASE64简单加密方法:
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:加密内容 options:NSJSONWritingPrettyPrinted error:nil];
// Get NSString from NSData object in Base64
NSString *base64Encoded = [jsonData base64EncodedStringWithOptions:0];
HMQRCodeScanner
UI界面的轻量级二维码扫描及生成框架,包含Objective-C和Swift
platform :ios, '8.0'
use_frameworks!
pod 'HMQRCodeScanner'
- 提供一个导航控制器,扫描 二维码 / 条形码
- 能够生成指定 字符串 + avatar(可选) 的二维码名片
- 能够识别相册图片中的二维码(iOS 64 位设备)
效果图;
HMSegmentedControl
pod 'HMSegmentedControl'
- 支持文字和图片两种显示方式
- 支持水平滚动
- 支持字体颜色,字距,阴影等文本属性
- 选择条可以在文字上面和下面两种方式
- 支持block回调
- 支持ARC,iOS >= 7
效果图:
IQKeyboardManager
键盘收缩自适应,方便快捷全局设置。
pod 'IQKeyboardManager'
- 只要能滚动的视图,各种适应,告别繁琐的计算,谁用谁知道
JKCountDownButton
子类化UIButton实现iOS倒计时按钮,常常用于注册等发送验证码的时候进行倒计时操作
platform :ios
pod 'JKCountDownButton'
- 使用比较方便,需要自己进行相关的调整,来适应项目需求
FDStackView
能够在iOS6以上使用UIStackView,使用xib拖拉拽,forkingdog出品,很是方便。
platform :ios, '7.0'
pod "FDStackView", "1.0"
- 支持纯代码使用FDStackView以及使用xib。
- 最低支付Xcode 7+
MD5Digest
对Post的参数进行MD5加密,加密结果不可逆,并且有较高的抗碰撞特性。
pod 'MD5Digest'
- 配合后台开发人员对请求数据进行加密,形成密文
- 项目中的加密方式:Base64_encode(md5(md5($action).md5($key)))
- 先对方法MD5加密,再加盐,拼接后再对密文MD5加密,最后再转成Base64密文。
- 详情见 简书作者 圆脸黑猫警长 iOS Base64、凯撒加密 ,MD5加密(16、32位)
- 注:项目中后台要求用的是64位,所以代码中
CC_MD5_DIGEST_LENGTH
改成CC_MD5_BLOCK_BYTES
MJExtension
转换速度快、使用简单方便的字典转模型框架
pod 'MJExtension'
- 字典和模型之间互相转换的超轻量级框架
- 只需要一行代码,就能实现模型的所有属性进行Coding(归档和解档)
- 能够和其相比的就YYModel了
MJRefresh
十分强大的下拉刷新和卡拉加载的框架,明杰出品实属精品。
pod 'MJRefresh'
- 支持各种自定义效果
- 具体效果gitHub地址上看了。
PPNetworkHelper
对AFNetworking 3.x 与YYCache的二次封装,存取超简单,告别FMDB!
pod 'PPNetworkHelper'
- 封装常见的GET、POST、文件上传/下载
- 网络状态监测的功能、方法接口简洁明了
- 结合YYCache实现对网络数据的缓存
RatingBar
pod RatingBar, '~>0.0.1'
- 实现简单的星星评分功能
SDAutoLayout
一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应。
pod 'SDAutoLayout', '~> 2.1.3'
- 碰见一些内容自增长的效果用这个库就对了,不算太麻烦。
- 作者有用这个库实现类似微信的效果,很赞。
SDCycleScrollView
无限循环图片、文字轮播器。
pod 'SDCycleScrollView','~> 1.64'
- 常用在顶部和商品详情的轮播图
- 支持图片下面各个图片的文字显示
效果图:
SDWebImage
网络图片加载
platform :ios, '7.0'
pod 'SDWebImage', '~>3.8'
- 开发必备,不多解释
SVProgressHUD
HUD提示器,下载,登录,显示成功或者失败的提示信息。
pod 'SVProgressHUD'
- 使用的时候就再封装一层,白色和黑色的背景自己选择,主要显示停留时间是5秒,自定义下吧。
效果图:
UITextView+Placeholder
pod 'UITextView+Placeholder', '~> 1.2'
- 简单支持富文本显示
WZLBadge
视图角标提示,按钮,图片等,支持四种不同的效果,心脏跳动效果,呼吸灯效果,横向抖动,静止状态。
pod 'WZLBadge'
- 小红点
- 红底白字“new”
- 红底白字数字
效果图:
2.本地导入的第三方库
Areapicker
地区选择器,动态联动,网络获取地址。
效果图:
GBTagListView
流式标签添加点击事件,支持block回调统计当前选择的标签。
效果图:
KxMenu
下拉选项按钮,一般出现在导航栏的右侧按钮。
- 功能强大,使用方便,根据按钮的位置弹出,通过block回调。
- 字体大小和颜色可更改,背影色为渐变的效果,还可以添加图片
效果图:
PlaceholderTextView
对TextView设置placeholder属性。
- 可以设置holder的文字,颜色,字体大小,起始位置。
UIViewController+ImagePicker
更改单个图片使用,主要是针对头像的时候,使用方便。
XLPasswordView
一个简单的密码输入组件,自己写的随机数字键盘,UI类似支付宝支付密码界面,使用简单,只需要三行代码就可以 , 代理方法也很简单明了。
- 代理方法清晰明了,开发者良心啊。
效果图:
ZZPhotoKit
基于Photos和AVFoundation框架开源,相册多选与相机连拍。
- 相册多选基于最新的 Photos 框架
- 相机连续拍摄基于AVFundation 框架。
- 图片浏览器支持 SDWebImage 加载图片
效果图:
总结
- 以上内容大部分为网络获取,如有错误的地方,即刻更改。