IOS第三方框架集合

在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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,702評論 6 534
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,615評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,606評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,044評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,826評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,227評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,307評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,447評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,992評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,807評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,001評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,550評論 5 361
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,243評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,667評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,930評論 1 287
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,709評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,996評論 2 374

推薦閱讀更多精彩內(nèi)容