在iOS開發(fā)中不可避免的會用到一些第三方類庫,它們提供了很多實用的功能,使我們的開發(fā)變得更有效率;同時,也可以從它們的源代碼中學習到很多有用的東西。
Reachability 檢測網(wǎng)絡連接
用來檢查網(wǎng)絡連接是否可用:包括WIFI和WWAN(3G/EDGE/CDMA等)兩種工作模式。
現(xiàn)在有更好的替代品:https://github.com/tonymillion/Reachability,比Apple提供的兼容性更好,而且更加好用,更具體的使用方法請看它提供的例子。
Reachability* reach = [Reachability reachabilityWithHostname:@"www.google.com"];reach.reachableBlock = ^(Reachabilityreach) { NSLog(@"網(wǎng)絡可用!");};reach.unreachableBlock = ^(Reachabilityreach) { NSLog(@"網(wǎng)絡不可用!");};// 開始監(jiān)聽[reach startNotifier];
ASIHTTPRequest 網(wǎng)絡請求
ASIHTTPRequest是對CFNetwork API的一個包裝,它提供了一套更加簡潔的API,使用起來也更加簡單。
官方網(wǎng)站:http://allseeing-i.com/ASIHTTPRequest/
GitHub:https://github.com/pokeb/asi-http-request
它不僅僅支持基本的HTTP請求,而且支持基于REST的服務(GET/POST/PUT/DELETE)。
最讓人喜歡的是,它支持block語法:
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"]; __block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; [request setCompletionBlock:^{ // Use when fetching text data NSString *responseString = [request responseString]; // Use when fetching binary data NSData *responseData = [request responseData]; }]; [request setFailedBlock:^{ NSError *error = [request error]; }]; [request startAsynchronous];
它的ASIFormDataRequest子類可以橫容易的提交表單數(shù)據(jù)和文件:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];[request setPostValue:@"Ben" forKey:@"first_name"];[request setPostValue:@"Copsey" forKey:@"last_name"];// Upload a file on disk[request setFile:@"/Users/ben/Desktop/ben.jpg" withFileName:@"myphoto.jpg" andContentType:@"image/jpeg"forKey:@"photo"]; // Upload an NSData instance[request setData:imageData withFileName:@"myphoto.jpg" andContentType:@"image/jpeg" forKey:@"photo"];
詳細的使用方法請下載相應的源代碼及例子,或者從官方的使用說明http://allseeing-i.com/ASIHTTPRequest/How-to-use開始。
MBProgressHUD 提示效果
支持各種狀態(tài)加載的提示效果,以及帶進度的提示效果。
GitHub:https://github.com/matej/MBProgressHUD
一般會在.m文件實現(xiàn)MBProgressHUDDelegate協(xié)議,并聲明HUD變量:
@interface SampleViewController ()<MBProgressHUDDelegate>{ MBProgressHUD *HUD;}#pragma mark -#pragma mark MBProgressHUDDelegate methods- (void)hudWasHidden:(MBProgressHUD *)hud { // Remove HUD from screen when the HUD was hidded [HUD removeFromSuperview]; HUD = nil;}
在執(zhí)行某個異步請求時開始調(diào)用:
HUD = [MBProgressHUD showHUDAddedTo:self.webView animated:YES]; HUD.labelText = @"正在請求..."; // mode參數(shù)可以控制顯示的模式 //HUD.mode = MBProgressHUDModeText; HUD.delegate = self;
請求完成時隱藏提示效果:
[HUD hide:YES];
對于同步方法一般都是用showWhileExecuting方法,方法執(zhí)行完成之后會自動隱藏提示效果:
[HUD showWhileExecuting:@selector(myTask) onTarget:self withObject:nil animated:YES];
SVProgressHUD 提示效果
GitHub:https://github.com/samvermette/SVProgressHUD
SVProgressHUD和MBProgressHUD效果差不多,不過不需要使用協(xié)議,同時也不需要聲明實例。
直接通過類方法進行調(diào)用即可:
[SVProgressHUD method]
可以使用以下方法來顯示狀態(tài):
- (void)show;+ (void)showWithMaskType:(SVProgressHUDMaskType)maskType;+ (void)showWithStatus:(NSString)string;+ (void)showWithStatus:(NSString)string maskType:(SVProgressHUDMaskType)maskType;
如果需要明確的進度,則使用以下方法:
(void)showProgress:(CGFloat)progress;+ (void)showProgress:(CGFloat)progress status:(NSString)status;+ (void)showProgress:(CGFloat)progress status:(NSString)status maskType:(SVProgressHUDMaskType)maskType;
通過dismiss方法來隱藏提示:
(void)dismiss;
另外提供了以下方法用于顯示狀態(tài),并在1秒后自動隱藏提示(使用的圖標來源于Glyphish:http://www.glyphish.com/):
(void)showSuccessWithStatus:(NSString)string;+ (void)showErrorWithStatus:(NSString )string;+ (void)showImage:(UIImage)image status:(NSString)string; // use 28x28 white pngs
ZAActivityBar 提示效果
GitHub:https://github.com/zacaltman/ZAActivityBar
ZAActivityBar和SVProgressHUD非常相似,它提供了更加簡潔的API來顯示提示效果。
ZAActivityBar使用的動畫效果來源于ZKBounceAnimation(https://github.com/khanlou/SKBounceAnimation),成功、失敗的狀態(tài)圖標來源于Pictos(http://pictos.cc/)。
顯示加載狀態(tài):
[ZAActivityBar showWithStatus:@"加載中..."];
顯示成功、失敗狀態(tài):
[ZAActivityBar showSuccessWithStatus:@"成功!"];[ZAActivityBar showErrorWithStatus:@"失敗!"];
隱藏提示:
[ZAActivityBar dismiss];
SDWebImage 圖片異步加載及緩存
SDWebImage用于異步下載網(wǎng)絡上的圖片,并支持對圖片的緩存等。
多數(shù)情況下是使用UIImageView+WebCache為UIImageView異步加載圖片:
UIActivityIndicator-for-SDWebImage 為SDWebImage顯示加載效果
GitHub:https://github.com/JJSaccolo/UIActivityIndicator-for-SDWebImage
用于為SDWebImage在UIImageView加載圖片時,顯示加載效果(UIActivityIndicatorView實現(xiàn))
UIImage+Resize 調(diào)整圖片大小
GitHub:https://github.com/coryalder/UIImage_Resize
提供多種方法為圖片設置透明度、圓角、裁剪、調(diào)整大小等:
- (UIImage *)imageWithAlpha;- (UIImage *)transparentBorderImage:(NSUInteger)borderSize;- (UIImage *)roundedCornerImage:(NSInteger)cornerSize borderSize:(NSInteger)borderSize;- (UIImage *)croppedImage:(CGRect)bounds;- (UIImage *)thumbnailImage:(NSInteger)thumbnailSize transparentBorder:(NSUInteger)borderSize cornerRadius:(NSUInteger)cornerRadius interpolationQuality:(CGInterpolationQuality)quality;- (UIImage *)resizedImage:(CGSize)newSize interpolationQuality:(CGInterpolationQuality)quality;- (UIImage *) resizedImageWithContentMode:(UIViewContentMode)contentMode bounds:(CGSize)bounds interpolationQuality:(CGInterpolationQuality)quality;
更詳細使用見:http://vocaro.com/trevor/blog/2009/10/12/resize-a-uiimage-the-right-way/
ImageCacheResize 異步加載圖片、緩存及調(diào)整大小
GitHub:https://github.com/toptierlabs/ImageCacheResize
整合了SDWebImage和UIImage+Resize的功能,用于圖片的異步加載、緩存、以及下載完成后調(diào)整大小并顯示在UIImageView上。
提供了API用于加載圖片以及加載完成后調(diào)整圖片大小
EGOTableViewPullRefresh 下拉刷新
GitHub:https://github.com/enormego/EGOTableViewPullRefresh
這是最早出現(xiàn)的為UITableView提供下拉刷新功能的類庫,使用起來稍顯麻煩,需要實現(xiàn)諸多協(xié)議(代碼取自官方DEMO):
PullToRefresh 下拉刷新
GitHub:https://github.com/leah/PullToRefresh
PullToRefresh提供比EGOTableViewPullRefresh更加簡單的使用方法,只要繼承自PullRefreshTableViewController,再實現(xiàn)refresh方法即可:
STableViewController 下拉刷新、上拉加載更多
GitHub:https://github.com/shiki/STableViewController
STableViewController比PullToRefresh多了一個上拉加載更多功能,使用上也差不多簡單,需要繼承自STableViewController,再實現(xiàn)一些方法
GitHub:https://github.com/vicpenap/PrettyKit
定制了一些UI組件如UITableViewCell、UINavigationBar、UITabBar、UIToolBar等,比系統(tǒng)自帶的更加美觀。
GitHub:https://github.com/sobri909/MGBox2
提供一些定制的UI組件可以更簡單快速的創(chuàng)建表格、網(wǎng)格布局,以及豐富的文本呈現(xiàn),基于block的事件機制等,包含:MGBox、MGTableBox、MGTableBoxStyled、MGScrollView、MGButton、MGEvents、MGEasyFrame、MGLine等,其中MGBox還支持screenshot方法用于截圖。
GitHub:https://github.com/jverkoey/nimbus
著名的框架,提供了一套非常豐富的UI組件,可以使開發(fā)變得更加簡單、有效率。
GitHub:https://github.com/Grouper/FlatUIKit
扁平化設計的UI組件,類似于WP或者iOS7的風格。
GitHub:https://github.com/muccy/MUKMediaGallery
媒體庫效果,支持圖片、視頻及音頻。
PTShowcaseViewController
GitHub: https://github.com/exalted/PTShowcaseViewController
同樣是一個媒體庫效果,支持的格式更多,包括:圖片、視頻、PDF等.
GitHub:https://github.com/mwaterfall/MWPhotoBrowser
圖片展示效果,支持本地及遠程的圖片,使用也比較簡單,只要實現(xiàn)MWPhotoBrowserDelegate協(xié)議:
ios-image-filters
GitHub:https://github.com/esilverberg/ios-image-filters
提供多種圖片濾鏡效果。
PDF Reader Core for iOS
GitHub:https://github.com/vfr/Reader
PDF閱讀器核心。
GitHub:https://github.com/Cocoanetics/DTCoreText
支持富文本的顯示如HTML。
GitHub:https://github.com/FuerteInternational/FTCoreText
富文本視圖
GitHub:https://github.com/akosma/CoreTextWrapper
支持多列的文本視圖
GitHub:https://github.com/nicklockwood/Base64
提供對字符串的Base64編碼
GitHub:https://github.com/rnapier/RNCryptor
提供AES加密方法
1. AFNetworking
在眾多iOS開源項目中,AFNetworking可以稱得上是最受開發(fā)者歡迎的庫項目。AFNetworking是一個輕量級的iOS、Mac OS X網(wǎng)絡通信類庫,現(xiàn)在是GitHub上第三大Objective-C庫。它建立在NSURLConnection、NSOperation等類庫的基礎上,讓很多網(wǎng)絡通信功能的實現(xiàn)變得十分簡單,因此,許多iOS應用開發(fā)都會使用到它。
支持HTTP請求和基于REST的網(wǎng)絡服務(包括GET、POST、PUT、DELETE等);
支持ARC;
要求iOS 5.0及以上版本;
有一些插件擴展已有的功能,還有一個功能齊全的API;
從URL中獲取JSON特別簡單。
詳情請參考:AFNetworking官網(wǎng)
2. Three20
Three20原本是iPhone版Facebook中所使用的工具庫,包括照片查看器等一系列的iPhone UI類集,以及HTTP磁盤緩存等一些通用工具。后來從Facebook iPhone應用中剝離出來,成為了一個深受開發(fā)者喜愛的通用框架。
3. facebook-ios-sdk
此前在“GitHub上最受歡迎的開源項目”Android系列文章(一)中,我們曾介紹過允許開發(fā)者將Facebook集成到Android應用中的Facebook SDK for Android。Facebook SDK for iOS和它一樣,可以讓開發(fā)者將Facebook相關(guān)功能集成到自己的iOS App中。
4. RestKit
Restkit是一個主要用于iOS上網(wǎng)絡通信的開源Objective-C框架,除了發(fā)送請求、接受響應這些基本功能外,還附帶Core Data,以及將遠程JSON映射為本地對象的功能。
主要特點:
可在iOS和Mac OS X的Objective-C中與RESTful Web服務進行簡單交互;
包含簡單的HTTP Request/Response API;
帶有強大的對象映射系統(tǒng),用于減少代碼長度;
RestKit可降低JSON/XML的處理的資源消耗,支持通過SBJSON和YAJL進行JSON解析。
詳情請參考:Restkit
5. asi-http-request
ASIHTTPRequest是一款極其強勁的HTTP訪問開源項目,能夠讓簡單的API完成非常復雜的功能,比如異步請求、隊列請求、GZIP壓縮、緩存、斷點續(xù)傳、進度跟蹤、上傳文件、HTTP認證。
ASIHTTPRequest適用于基本的HTTP請求,和基于REST的服務之間的交互。使用Objective-C編寫,能夠同時用于Mac OS X和iPhone應用中。
詳情請參考:all-seeing.ASIHTTPRequest
6. GPUImage
GPUImage是一個基于GPU圖像和視頻處理的開源iOS框架。
主要功能如下:
提供各種各樣的圖像處理濾鏡,并且支持照相機和攝像機的實時濾鏡;
GPUImage顧名思義,是基于GPU的圖像加速,因此圖像處理速度非常快,并且能夠自定義圖像濾鏡;
支持ARC。
7. MonoGame
MonoGame是一個Microsoft XNA 4.x Framework的開源跨平臺實現(xiàn)。此前在Android開源項目系列文章(一)中我們也進行了詳細的介紹。
MonoGame支持平臺:
iOS(包括Ritina Display)
Android
Windows(OpenGL)
Mac OS X
Linux
Windows Store Apps(Windows 8、Windows RT)
Windows Phone 8
PlayStation Mobile(目前僅支持2D)
OUYA
8. Nimbus
Nimbus是一個開源的iOS框架,比起Three20,Nimbus的文檔更為全面、豐富,能夠?qū)崿F(xiàn)很多非常炫的界面特效。因此,開發(fā)者可以借助Nimbus來降低項目設計的復雜度。
9. cheddar-ios
Cheddar是一個簡單即時的任務管理器,Cheddar for iOS是Cheddar的iOS客戶端,通用于iPhone和iPad。
開發(fā)者可以直接登陸App Store下載該應用。
10. ViewDeck
IIViewDeckController能夠?qū)崿F(xiàn)類似于Path 2.0 的視圖左右滑動的效果,支持向左或向右順滑的滑動操作。
點擊鏈接,查看視頻演示(常規(guī)演示、靈敏性演示),注意,需翻&墻的喲。
11. GMGridView
GMGridView是一款開源的iOS(iPhone/iPad)表格視圖,允許用戶手勢對表格單元進行排序,在單元格需要展示時才進行裝載,這樣極大地提高了表格的效率。其中的伸縮/旋轉(zhuǎn)/平移手勢能夠讓用戶改變視圖,還能夠?qū)崿F(xiàn)從CellView到全屏的切換。
詳情請參考:gmoledina
12. QuickDialog
QuickDialog可以幫助開發(fā)者快速創(chuàng)建復雜的表單,實現(xiàn)包括登錄界面在內(nèi)的各種樣式的TableView輸入界面,此外,還可以創(chuàng)建帶有多個文本域的表格及項目。
開發(fā)者可以直接登陸QuickDialog官方網(wǎng)站,獲取更多信息或文檔。
13. appirater
Appirater是一個可以直接使用到任何iPhone應用(iOS4.0及以上)中的開源類,用于提醒用戶在打開App時,對應用進行評論或打分。
詳情請參考:Appirater group
14. SVProgressHUD
SVProgressHUD能夠?qū)崿F(xiàn)多種HUD效果,多用于程序正在執(zhí)行耗時較長的任務,需要用戶等待。除了顯示等待的HUD,還可以顯示命令執(zhí)行成功或者失敗的HUD。
15. Reader
該項目能夠讓iOS開發(fā)者輕而易舉地在iOS設備屏幕上顯示PDF文件。代碼通用,不需要任何XIB(因為所有UI元素都是代碼生成的,具有極大的靈活性),運行于iOS 4.0及其以上版本設備中,同時還支持所有Retina Display設備。
支持:
諸如iBooks等的文檔導航;
設備全方位旋轉(zhuǎn);
對PDF進行加密(密碼保護);
PDF鏈接(URI及跳轉(zhuǎn)頁面);
PDF旋轉(zhuǎn)頁面。
16. CocoaAsyncSocket
CocoaAsyncSocket提供了十分強大而又易用的Mac OS X及iOS異步套接庫,支持TCP和UDP,其中,AsyncSocket類是支持TCP的,AsyncUdpSocket是支持UDP的。
AsyncSocket是封裝了CFSocket和CFSteam的TCP/IP socket網(wǎng)絡庫,提供異步操作。AsyncUdpSocket是UDP/IP socket網(wǎng)絡庫,包裝自CFSocket。
17. SSToolkit
SSToolkit可以說是iOS開發(fā)者最常使用的工具類之一,該開源項目提供了一個完整的iOS類庫集合,用于解決iOS開發(fā)者在開發(fā)過程中常碰到的一些問題,比如追蹤一款設備是否具有視網(wǎng)膜顯示屏或是否能剪裁圖片,包含SSCollectionView、SSGradientView、SSSwitch等諸多非常方便的類。
如果想要對SSToolkit作進一步了解,可以在iPad/iPhone上使用SSToolkit的Demo應用SSCatalog。獲取更多信息,可直接登陸S.S. TOOLKIT。
18 XMPPFramework
XMPPFramework是一個使用Objective-C編寫的用于Mac/iOS開發(fā)的XMPP框架,它提供了一個RFC-3920(XMPP標準)核心實現(xiàn),通過某些特定工具讀寫XML。XMPPFramework有著非常豐富的建立在模塊化架構(gòu)之上的XEP擴展,開發(fā)者可以將其直接插入到代碼中,使用GCD構(gòu)成,即使是在非常老舊的iPhone或12核Mac Pro上,它都能高效運轉(zhuǎn)。
19. MGSplitViewController
為了方面開發(fā),蘋果iOS SDK提供了UISplitViewController用于iPad左右分欄界面顯示,但對于開發(fā)者而言,UISplitViewController使用起來并不方便,在開發(fā)過程中,總會遇到許多問題。于是,天才的iOS開發(fā)者Matt Gemmell在GitHub上發(fā)起了一個名為MGSplitViewController的開源UISplitView實現(xiàn),它比蘋果官方UI組件所提供的分欄類功能更加豐富。
最初Matt編寫MGSplitViewController只是為了方便自己使用,但最終Matt決定將其開源,供所有iOS開發(fā)者使用。如果想要了解更多關(guān)于MGSplitViewController的信息,可直接登陸Matt Gemmell博客查看,也可點擊鏈接,查看視頻演示(需翻&墻)。
20. CocoaLumberjack
CocoaLumberjack集快、簡單、強大、靈活于一身,和log4j等其他非常受開發(fā)者歡迎的日志框架的概念類似,專為Objective-C設計,用于iOS和Mac,擁有多線程、GCD(如果可用)、無鎖原子操作和Objective-C運行時的動態(tài)特性。
21. PSTCollectionView
PSTCollectionView是用于iOS 4.3及其以上版本中的UICollectionView的100%開源API兼容替代品。如果想要使用UICollectionView,但仍然需要支持老版本的iOS,那么這個項目你一定會非常喜歡。如果想要始終使用PSTCollectionView,使用PSTCollectionView作為類名稱即可。
當然,如果你想在iOS 4.3/5.x上使用PSTCollectionView,但在iOS 6上使用UICollectionView,可以在所有UICollectionView類上添加PS,以獲得對老版iOS的自動支持,這樣就可以隨心所欲如你所愿地使用PSUICollectionView。
22. CocoaHTTPServer
CocoaHTTPServer是一個用于Mac OS X或iOS應用的輕量級、可嵌入的HTTP服務器框架。有時候開發(fā)者需要在他們的App中內(nèi)嵌一個HTTP服務器。無論是具有遠程監(jiān)控功能的服務器應用,還是使用HTTP進行后端通信的桌面應用,或者是提供無線訪問文檔功能的iOS應用,CocoaHTTPServer都能滿足你的開發(fā)要求。
CocoaHTTPServer提供如下功能:
支持Bonjour廣播內(nèi)建;
支持IPv4、IPv6;
異步網(wǎng)絡使用GCD和標準套接口;
密碼保護支持;
SSL/TLS加密支持;
快速、高效;
伸縮性強;
大量注釋代碼;
非常容易擴展;
還支持WebDAV。
23. PushSharp
在應用開發(fā)中,給App推送通知是很常見的方式。PushSharp正是這樣一個能夠?qū)崿F(xiàn)向iOS(iPhone/iPad APNS)、Android(C2DM和GCM)、Windows Phone、Windows 8、BlackBerry(PAP)和Amazon(ADM)等多種操作系統(tǒng)推送消息通知的開源C#服務器端庫。
主要特性:
支持多平臺消息推送;
API能夠很流暢地為不同平臺創(chuàng)建通知;
自適應信息頻道(自動增加或減少消息鏈接);
使用異步代碼,基于Event為導向調(diào)用類庫;
100%代碼托管,兼容Mono框架;
24. HockeyKit
此前在GitHub上“最受歡迎的Android開源項目”系列文章(一)中,我們曾對HockeyKit進行了詳細的介紹。HockeyKit是一個用于iOS和Android下App更新的開發(fā)包,無論是iOS還是Android應用開發(fā),它都深受開發(fā)者喜愛。
25. JTRevealSidebarDemo
JTRevealSidebarDemo是一個能夠?qū)崿F(xiàn)類似于Facebook客戶端和Path應用的視圖切換效果的Objective-C庫模板,其目的在于為開發(fā)者提供一個真正靈活的、可重用的解決方案。
JTRevealSidebarDemo可用于iOS 4.3和5.0應用開發(fā),示例代碼使用ARC構(gòu)建,但該庫本身則兼容ARC和非ARC。
26. PKRevealController
PKRevealController是對ZUUIRevealController的進化,ZUUIRevealController能夠?qū)崿F(xiàn)類似于Facebook客戶端的視圖橫向切換效果。而PKRevealController則是一個iOS視圖控制器的集合,能夠讓你實現(xiàn)多重控制器切換,非常靈活。
27. QuincyKit
QuincyKit是一個為iOS和Mac OS X提供的程序崩潰報告管理解決方案,提供客戶端開發(fā)包以及基于PHP開發(fā)的服務器平臺。
主要功能:
(自動)向開發(fā)者數(shù)據(jù)庫發(fā)送崩潰報告;
由用戶決定每次崩潰是否發(fā)送數(shù)據(jù)或總是發(fā)送;
用戶可對是否選擇提供E-mail地址等額外信息進行設置;
如果崩潰是已知的,向用戶提供即時反饋,并在接下來的更新中進行修復。
詳情請參考:QuincyKit官網(wǎng)
28. PSStackedView
PSStackedView能夠?qū)⒛愕腢IViewControllers堆疊起來,實現(xiàn)了類似于Twitter iPad版應用效果的界面,項目發(fā)起人Peter Steinberger表示,PSStackedView的靈感正是來自于Twitter iPad的UI。
為了開發(fā)非常受歡迎的奧地利TV應用“3MobileTV”的iPad版,Peter創(chuàng)作了PSStackedView,開發(fā)者可以直接登陸App Store下載該應用。PSStackedView可運行在iPad和iPhone上,但相對而言,更適合用在iPad上。
29. Chameleon
作為一名iOS開發(fā)者,你應該對蘋果官方用于開發(fā)iPhone、iPod和iPad應用的UIKit框架很熟悉。Chameleon是一個完全獨立的可以直接替代UIKit在Mac OS X上運行的框架,和UIKit唯一的共性就是公共類和方法名稱。在大多數(shù)情況下,開發(fā)者不需要改動任何代碼,即可直接在Mac上運行所開發(fā)的iOS應用。
Chameleon的源代碼是基于蘋果的文檔而來,并沒有使用到任何私有API或其他未經(jīng)Mac App Store批準的技術(shù)。如果想要了解更多關(guān)于Chameleon的信息,可直接登陸ChameleonProject網(wǎng)站查看。
30. DCIntrospect
Introspect是一個很小的iOS工具集,用于幫助開發(fā)者對使用UIKit構(gòu)建的用戶界面進行調(diào)試。特別適用于動態(tài)創(chuàng)建UI布局、改變運行時,還能通過尋找透明視圖優(yōu)化應用性能,并避免不必要的重繪視圖。
31. PSCollectionView
PSCollectionView是一個能夠?qū)崿F(xiàn)Pinterest風格的瀑布流視圖顯示效果的iOS滾動組件,可用于類似的UITableView,支持顯示圖片和文字。
項目發(fā)起人Peter Shih在自己的iPhone/iPad應用Lunchbox中使用了PSCollectionView源代碼,開發(fā)者可以在App Store中免費下載該應用。
32. SDURLCache
NSURLCache及其子類提供了很多高級接口用于處理緩存,但如果你想在自己的iPhone應用中通過HTTP請求的方式將緩存存儲到磁盤中,推薦使用SDURLCache。Peter Steinberger在GitHub上托管的這個SDURLCache項目是Olivier Poitrey的SDURLCache的一個分支,支持iOS 5以下版本系統(tǒng)。
33. FastPdfKit
該開源庫包含著FastPdfKit iOS庫的一些示例項目。FastPdfKit是一個能夠讓你在iOS應用中顯示PDF文檔的開發(fā)類庫,其最大的特點就是加載PDF文檔速度特別快。
詳情請參考:FastPdfKit官網(wǎng)
34. KKGridView
KKGridView是一個高性能的iOS表格組件,但自WWDC 2012大會上蘋果推出了相關(guān)的解決方案之后,KKGridView也就逐漸停止使用了。每逢iOS系統(tǒng)更新,iOS開源項目勢必也會發(fā)生新一輪的改變,至于在顛覆了蘋果以往設計觀的iOS 7發(fā)布之后,iOS開源項目又會發(fā)生哪些改變?還要看天才的開發(fā)者們!
35. MGBox2
MGBox2能夠?qū)崿F(xiàn)非常酷的列表交互效果,使用最少代碼,即可快速創(chuàng)建各種布局效果的iOS表格、網(wǎng)格,支持新增和刪除網(wǎng)格,動態(tài)添加或刪除列表,在表格中加入多行文字、圖片等,支持手勢識別和自定義事件。
36下拉刷新列表組件SVPullToRefresh
SVPullToRefresh 允許你通過一行代碼把下拉刷新添加至UIScrollView子類別,不需要依賴委托或者子類化UITableViewController。另外,該項目支持簡單自定義文本、箭頭的外觀。
這些UIScrollView類別讓下拉刷新和UIScrollView的無限滾動變得非常簡單,
SVPullToRefresh使用Objective-C runtime為UIScrollView添加以下3種方法:
- (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler;
- (void)addPullToRefreshWithActionHandler:(void (^)(void))actionHandler position:(SVPullToRefreshPosition)position;
- (void)addInfiniteScrollingWithActionHandler:(void (^)(void))actionHandler;
https://github.com/samvermette/SVPullToRefresh
37網(wǎng)絡工具包MKNetWorkKit
MKNetworkKit 是一個完全基于 ARC 的網(wǎng)絡工具包。支持把上一次請求進行緩存。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優(yōu)點,并加入了自己的功能。
最新的代碼并未在完全在Mac通過測試,iOS上的測試已經(jīng)完成。包括Digg在內(nèi)的多款app使用了該項目。關(guān)于更詳細的信息和教程,你可以到MKNetWorkKit相關(guān)博客上查看。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/
網(wǎng)絡工具包MKNetWorkKit
MKNetworkKit 是一個完全基于 ARC 的網(wǎng)絡工具包。支持把上一次請求進行緩存。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優(yōu)點,并加入了自己的功能。
最新的代碼并未在完全在Mac通過測試,iOS上的測試已經(jīng)完成。包括Digg在內(nèi)的多款app使用了該項目。關(guān)于更詳細的信息和教程,你可以到MKNetWorkKit相關(guān)博客上查看。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/
UILabel改進版TTTAttributedLabel
TTTAttributedLabel是一個文字視圖開源組件,是UILabel的替代元件,可以以簡單的方式展現(xiàn)渲染的屬性字符串。另外,還支持鏈接植入,不管是手動還是使用UIDataDetectorTypes自動把電話號碼、事件、地址以及其他信息變成鏈接。
支持NSAttributedString,兼容iOS 4.3以上系統(tǒng),自動數(shù)據(jù)檢測,手動鏈接植入等。
還包括先進的段落樣式:
verticalAlignment
textInsets
firstLineIndent
leading
lineHeightMultiple
shadowRadius
highlightedShadowRadius / highlightedShadowOffset / highlightedShadowColor
truncationTokenString
網(wǎng)絡工具包MKNetWorkKit
MKNetworkKit 是一個完全基于 ARC 的網(wǎng)絡工具包。支持把上一次請求進行緩存。MKNetWorkKit吸取了ASIHttpRequest與AFNetWorking的優(yōu)點,并加入了自己的功能。
最新的代碼并未在完全在Mac通過測試,iOS上的測試已經(jīng)完成。包括Digg在內(nèi)的多款app使用了該項目。關(guān)于更詳細的信息和教程,你可以到MKNetWorkKit相關(guān)博客上查看。http://blog.mugunthkumar.com/products/ios-framework-introducing-mknetworkkit/
轉(zhuǎn)自:http://www.verydemo.com/demo_c134_i49279.html