主要來記錄最近做的項目當中所有用到的第三方庫,對用到的輪子進行總結和歸納。
目前開發項目中,以已為例,不再像之前那樣把所有的第三方庫下到本地,再導入工程中,然后就是苦逼的開始往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 加載圖片
效果圖:

總結
- 以上內容大部分為網絡獲取,如有錯誤的地方,即刻更改。