AFN與MBProgressHUD的組合封裝

DEMO 簡介:

AFN 與 MBProgressHUD(注意版本號:version:1.0.0) 的組合封裝。

DEMO下載地址:https://github.com/IMCCP/CCPAFNNetworking

DEMO 描述:

AFN與MBProgressHUD的組合使用掸读。加載動(dòng)畫都是從度娘上下載的姜钳,效果不是很好只用作展示续室。 demo中 用到的第三方框架:AFNetworking,MBProgressHUD,MJRefresh,MJExtension,DGActivityIndicatorView

DEMO GIF:


DEMO中各個(gè)方法介紹:

1.MBProgressHUD 中添加兩個(gè)方法

/**

* ?隱藏 HUD

*/

+ (void) dissmissShowView:(UIView *)showView {

if (showView == nil) {

showView = (UIView*)[[[UIApplication sharedApplication]delegate]window];

}

[self hideHUDForView:showView animated:YES];

}

/**

* ?顯示 HUD

* ?@param imageArr ? loading 圖片數(shù)組

* ?@param showView ? HUD 展示的View

*/

+ (instancetype) showHUDWithImageArr:(NSMutableArray *)imageArr andShowView:(UIView *)showView {

if (showView == nil) {

showView ?= (UIView *)[[UIApplication sharedApplication].delegate window];

}

if (imageArr == nil) {

return [self showHUDAddedTo:showView animated:YES];

} else {

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:showView animated:YES];

hud.mode = MBProgressHUDModeCustomView;

UIImageView *imaegCustomView = [[UIImageView alloc] init];

imaegCustomView.animationImages = imageArr;

[imaegCustomView setAnimationRepeatCount:0];

[imaegCustomView setAnimationDuration:(imageArr.count + 1) * 0.075];

[imaegCustomView startAnimating];

hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;

hud.bezelView.color = [UIColor clearColor];

hud.customView = imaegCustomView;

hud.square = NO;

return hud;

}

}

2.MBProgressHUD分類(MBProgressHUD+ADD.h)方法介紹

/**

* ?展示信息

* ?@param information 提示文字

* ?@param view ? ? ? ?HUD展示的view

* ?@param afterDelay ?展示的時(shí)間

*/

+ (MBProgressHUD *)showInformation:(NSString *)information toView:(UIView *)view andAfterDelay:(float)afterDelay {

if (view == nil) view = [UIApplication sharedApplication].keyWindow;

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];

;

hud.mode = MBProgressHUDModeText;

hud.label.text = information;

hud.offset = CGPointMake(0.f, MBProgressMaxOffset);

[hud hideAnimated:YES afterDelay:afterDelay];

return hud;

}

/**

* ?展示自定義view

* ?@param customview 自定義的view

* ?@param textString 提示文字

* ?@param view ? ? ? HUD展示的view

* ?@param afterDelay 展示時(shí)間

*/

+ (void)showCustomview:(UIView *)customview andTextString:(NSString *)textString toView:(UIView *)view andAfterDelay:(float)afterDelay {

if (view == nil) view = [UIApplication sharedApplication].keyWindow;

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:view animated:YES];

hud.mode = MBProgressHUDModeCustomView;

hud.bezelView.style = MBProgressHUDBackgroundStyleSolidColor;

hud.bezelView.color = [UIColor clearColor];

hud.customView = customview;

hud.square = YES;

hud.label.text = textString;

hud hideAnimated:YES afterDelay:afterDelay];

}

3.網(wǎng)絡(luò)請求工具類方法介紹

/**

* ?單例 返回網(wǎng)絡(luò)請求工具類對象

*/

+ (CCPNetworking *)sharedCCPNetworking;

/**

* ?開啟網(wǎng)絡(luò)監(jiān)測晰韵,監(jiān)聽網(wǎng)絡(luò)狀態(tài)的改變

*/

+ (void)startMonitoring;

/**

* ?獲取網(wǎng)絡(luò)狀態(tài)

*/

+ (NetworkStatu)checkNetStatus;

/**

* ?檢測是否有網(wǎng)絡(luò)連接

*/

+ (BOOL) isHaveNetwork;

/**

* ?post 或者 get 請求方法,block回調(diào)

* ?@param httpMethod ? ? ? 網(wǎng)絡(luò)請求類型

* ?@param url ? ? ? ? ? ? ?請求鏈接逛尚,根路徑

* ?@param params ? ? ? ? ? 參數(shù)字典

* ?@param loadingImageArr ?loading圖片數(shù)組 搪花,如果數(shù)組為 nil 則顯示默認(rèn)的loading加載動(dòng)畫

* ?@param showView ? ? ? ? HUD 展示view

* ?@param success ? ? ? ? ?請求成功返回?cái)?shù)據(jù)

* ?@param fail ? ? ? ? ? ? 請求失敗

* ?@param showHUD ? ? ? ? ?是否顯示HUD

*/

+(CCPURLSessionTask *)getOrPostWithType:(httpMethod)httpMethod ? WithUrl:(NSString *)url params:(NSDictionary *)params loadingImageArr:(NSMutableArray *)loadingImageArr ?toShowView:(UIView *)showView success:(CCPResponseSuccess)success fail:(CCPResponseFail)fail showHUD:(BOOL)showHUD;

/**

* ?上傳圖片方法 支持多張和單張上傳

* ?@param image ? ? ?上傳的圖片數(shù)組

* ?@param url ? ? ? ?請求連接,根路徑

* ?@param filename ? 圖片的名稱(如果不傳則以當(dāng)前時(shí)間命名)

* ?@param names ? ? ?上傳圖片時(shí)參數(shù)數(shù)組 <后臺 處理文件的[字段]>

* ?@param params ? ? 參數(shù)字典

* ?@param loadingImageArr ?loading圖片數(shù)組 敛熬,如果數(shù)組為 nil 則顯示默認(rèn)的loading加載動(dòng)畫

* ?@param showView ?HUD 展示view

* ?@param progress ? 上傳進(jìn)度

* ?@param success ? ?請求成功返回?cái)?shù)據(jù)

* ?@param fail ? ? ? 請求失敗返回?cái)?shù)據(jù)

* ?@param showHUD ? ?是否顯示HUD

*/

+ (CCPURLSessionTask *)uploadWithImages:(NSArray *)imageArr url:(NSString *)url filename:(NSString *)filename names:(NSArray *)nameArr params:(NSDictionary *)params loadingImageArr:(NSMutableArray *)loadingImageArr toShowView:(UIView *)showView progress:(CCPUploadProgress)progress success:(CCPResponseSuccess)success fail:(CCPResponseFail)fail showHUD:(BOOL)showHUD;

/**

* ?下載文件方法

* ?@param url ? ? ? ? ? 下載地址

* ?@param saveToPath ? ?文件保存的路徑,如果不傳則保存到Documents目錄下肺稀,以文件本來的名字命名

* ?loadingImageArr ? ? ?loading圖片數(shù)組,如果數(shù)組為 nil 則顯示默認(rèn)的loading加載動(dòng)畫

* ?@param showView ? ? ?HUD 展示view

* ?@param progressBlock 下載進(jìn)度回調(diào)

* ?@param success ? ? ? 下載完成

* ?@param fail ? ? ? ? ?失敗

* ?@param showHUD ? ? ? 是否顯示HUD

* ?@return ? ? ? ? ? ? ?返回請求任務(wù)對象应民,便于操作

*/

+ (CCPURLSessionTask *)downloadWithUrl:(NSString *)url saveToPath:(NSString *)saveToPath loadingImageArr:(NSMutableArray *)loadingImageArr progress:(CCPDownloadProgress )progressBlock toShowView:(UIView *)showView success:(CCPResponseSuccess )success failure:(CCPResponseFail )fail showHUD:(BOOL)showHUD;

注:方法的具體實(shí)現(xiàn)步驟不再在這里進(jìn)行展示话原,浪費(fèi)大家的時(shí)間,DEMO中已經(jīng)做了很詳細(xì)的標(biāo)注诲锹,大家可以下載查閱繁仁。

DEMO 使用示例

//顯示內(nèi)容為新浪新聞圖片欄目的部分?jǐn)?shù)據(jù)

在這里用到了 Charles 這款強(qiáng)大的抓包工具軟件?

Charles(version:4.0) 下載鏈接:(Charles + 破解文件,提取密碼:he3x)

Charles 使用教程:感謝原文作者的辛勤付出

- (void)loadData {

[CCPNetworking getOrPostWithType:GET WithUrl:@"http://newsapi.sina.cn/?resource=feed&accessToken=&chwm=3023_0001&city=CHXX0008&connectionType=2&deviceId=3d91d5d90c90486cde48597325cf846b699ceb53&deviceModel=apple-iphone5&from=6053093012&idfa=7CE5628E-577A-4A0E-B9E5-283217ECA1F1&idfv=10E31C9D-59AE-4547-BDEF-5FF3EA045D86&imei=3d91d5d90c90486cde48597325cf846b699ceb53&location=39.998602%2C116.365189&osVersion=9.3.5&resolution=640x1136&token=61903050f1141245bfb85231b58e84fb586743436ceb50af9f7dfe17714ee6f7&ua=apple-iphone5__SinaNews__5.3__iphone__9.3.5&weiboSuid=&weiboUid=&wm=b207&rand=221&urlSign=3c861405dd&behavior=manual&channel=news_pic&lastTimestamp=1473578882&listCount=20&p=1&pullDirection=down&pullTimes=8&replacedFlag=1&s=20" params:nil loadingImageArr:imageArr toShowView:self.view success:^(id response) {

//成功的回調(diào)归园,在這里進(jìn)行數(shù)據(jù)的解析

} fail:^(NSError *error) {

//失敗的回調(diào) 黄虱,提示用戶錯(cuò)誤信息

} showHUD:YES];

}

感謝您的閱讀,期待您的 Star庸诱,如果在使用中您有任何問題捻浦,可以在 github issues,我會(huì)盡自己能力給您答復(fù) 晤揣。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市朱灿,隨后出現(xiàn)的幾起案子昧识,更是在濱河造成了極大的恐慌,老刑警劉巖盗扒,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件跪楞,死亡現(xiàn)場離奇詭異,居然都是意外死亡侣灶,警方通過查閱死者的電腦和手機(jī)甸祭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來褥影,“玉大人池户,你說我怎么就攤上這事》苍酰” “怎么了煞檩?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長栅贴。 經(jīng)常有香客問我,道長熏迹,這世上最難降的妖魔是什么檐薯? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮注暗,結(jié)果婚禮上坛缕,老公的妹妹穿的比我還像新娘。我一直安慰自己捆昏,他們只是感情好赚楚,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著骗卜,像睡著了一般宠页。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上寇仓,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天举户,我揣著相機(jī)與錄音,去河邊找鬼遍烦。 笑死俭嘁,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的服猪。 我是一名探鬼主播供填,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼拐云,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了近她?” 一聲冷哼從身側(cè)響起叉瘩,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎泄私,沒想到半個(gè)月后房揭,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡晌端,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年捅暴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咧纠。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡蓬痒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出漆羔,到底是詐尸還是另有隱情梧奢,我是刑警寧澤,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布演痒,位于F島的核電站亲轨,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鸟顺。R本人自食惡果不足惜惦蚊,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望讯嫂。 院中可真熱鬧蹦锋,春花似錦、人聲如沸欧芽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽千扔。三九已至憎妙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昏鹃,已是汗流浹背尚氛。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留洞渤,地道東北人阅嘶。 一個(gè)月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親讯柔。 傳聞我的和親對象是個(gè)殘疾皇子抡蛙,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

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

  • .打開下載下來的demo,運(yùn)行如下(其中紅色箭頭所指的文件是我們拖到項(xiàng)目中的兩個(gè)文件): 1678515-d4b8...
    Littleredguy閱讀 812評論 0 1
  • 源碼來源:gitHub源碼 轉(zhuǎn)載于: CocoaChina 來源:南峰子的技術(shù)博客 版本:0.9.1 MBPr...
    李小六_閱讀 6,433評論 2 5
  • 利用 MBProgress 提供的接口方法進(jìn)行了二次封裝拓展.為了更好的使用,特此記錄一下,方便今后開發(fā)使用帶來便...
    survivorsfyh閱讀 570評論 0 1
  • 秋月籠煙春不曉,拍遍欄干人己老魂迄。漢家錦瑟五十弦粗截,弦弦掩抑離別難。窗外依稀見人影捣炬,卷簾漠漠花枝冷熊昌。 空中又見北飛雁,...
    倚劍白云天閱讀 263評論 0 0
  • 女生做銷售是有一定的優(yōu)勢昂利,但凡事都有兩面性。女業(yè)務(wù)員在職場中很容易受到領(lǐng)導(dǎo)或者客戶的騷擾铁坎,而業(yè)績突出的女銷售蜂奸,很容...
    瘦朵朵快樂相伴閱讀 3,551評論 0 3