禮物說仿寫

? ? 首先我從網(wǎng)絡(luò)上下載了liwushuo.ipa文件,通過解包得到里面的資源文件,后來我發(fā)現(xiàn)里面的圖片并不全,找不到我想要的那幾張圖片,慢慢地我發(fā)現(xiàn)了一個(gè)名為assert.car的文件,通過Google得知這個(gè)是一個(gè)特殊的壓縮文件,需要通過特定的工具可以進(jìn)行解壓,具體方法在如下網(wǎng)址,我使用Xcode編譯好文件后,在用終端調(diào)用編譯好的文件進(jìn)行解包,放到指定的文件夾,然后洪荒之力得到解放,里面的圖片全都盡收囊中。


解壓后得到927張圖片

從assert.car中解壓得到圖片的方法

http://blog.csdn.net/donwei8/article/details/52161384

我創(chuàng)建了一個(gè)名為Gift的工程,我用storyboard創(chuàng)建了四個(gè)TabBar,每個(gè)TabBar又嵌套了一個(gè)navigationbar,每個(gè)TabBar的圖標(biāo)設(shè)置未選中圖片和已選中圖片,并且通過增加tintColor的方法改變其選中時(shí)的顏色,而不是默認(rèn)時(shí)的藍(lán)色,導(dǎo)航欄的顏色我本來也想直接在storyboard中設(shè)置,通過設(shè)置背景顏色的功能時(shí),我發(fā)現(xiàn)設(shè)置好的顏色是漸變的,并不能得到我預(yù)想的純色的效果,這個(gè)方法行不通之后,我考慮到可能其他的界面也需要這樣一個(gè)設(shè)置,所以我創(chuàng)建了一個(gè)GiftNavigationController的類,用來存放navigation的界面設(shè)置,并將每一個(gè)需要的navigation與這個(gè)控制器進(jìn)行綁定,來達(dá)到共同設(shè)置的效果。這里用了一個(gè)取巧的方法,我把一個(gè)相同顏色的純色圖片直接當(dāng)做背景放上去,就可以替換成自己喜歡的顏色啦。另外,我改變了狀態(tài)欄的樣式,將其改為UIBarStyleBlack,這樣子的改變會(huì)影響狀態(tài)欄中字的顏色,會(huì)變成白色。實(shí)現(xiàn)后的效果如下。


NavigationBar和TabBar的初步實(shí)現(xiàn)

整體的框架已經(jīng)搭好,那么我們需要從官方的應(yīng)用中獲取到響應(yīng)的JSON數(shù)據(jù),就需要用到抓包軟件,我使用的抓包軟件是Paros,具體使用方法:http://jingyan.baidu.com/article/a3a3f811ebbd2d8da2eb8ac1.html



獲取到的JSON數(shù)據(jù)網(wǎng)址

精選頭部圖片

http://api.liwushuo.com/v2/secondary_banners?gender=1&generation=2

精選輪播圖片

http://api.liwushuo.com/v2/banners?channel=iO

精選

http://api.liwushuo.com/v2/channels/101/items_v2?ad=2&gender=1&generation=2&limit=20&offset=0

送女票

http://api.liwushuo.com/v2/channels/10/items_v2?gender=1&generation=2&limit=20&offset=0

海淘

http://api.liwushuo.com/v2/channels/129/items_v2?gender=1&generation=2&limit=20&offset=0

創(chuàng)意生活

http://api.liwushuo.com/v2/channels/125/items_v2?gender=1&generation=2&limit=20&offset=0

送基友

http://api.liwushuo.com/v2/channels/26/items_v2?gender=1&generation=2&limit=20&offset=0

送爸媽

http://api.liwushuo.com/v2/channels/6/items_v2?gender=1&generation=2&limit=20&offset=0

送同事

http://api.liwushuo.com/v2/channels/17/items_v2?gender=1&generation=2&limit=20&offset=0

送寶貝

http://api.liwushuo.com/v2/channels/24/items_v2?gender=1&generation=2&limit=20&offset=0

設(shè)計(jì)感

http://api.liwushuo.com/v2/channels/127/items_v2?gender=1&generation=2&limit=20&offset=0

文藝風(fēng)

http://api.liwushuo.com/v2/channels/14/items_v2?gender=1&generation=2&limit=20&offset=0

奇葩搞怪

http://api.liwushuo.com/v2/channels/126/items_v2?gender=1&generation=2&limit=20&offset=0

科技范

http://api.liwushuo.com/v2/channels/28/items_v2?gender=1&generation=2&limit=20&offset=0

萌萌噠

http://api.liwushuo.com/v2/channels/11/items_v2?gender=1&generation=2&limit=20&offset=0

熱門

http://api.liwushuo.com/v2/items?gender=1&generation=2&limit=50&offset=0

分類

熱詞

http://api.liwushuo.com/v2/search/hot_words

品類 風(fēng)格 對(duì)象

http://api.liwushuo.com/v2/channel_groups/all

欄目

http://api.liwushuo.com/v2/columns?limit=11&offset=0

單品

http://api.liwushuo.com/v2/item_categories/tree


仔細(xì)觀察這些API,可以發(fā)現(xiàn)有幾個(gè)是相類似的,僅僅幾個(gè)數(shù)字不一樣,那么就可以放在一起進(jìn)行解析。


下面進(jìn)行網(wǎng)絡(luò)層的編寫,首先需要一個(gè)基礎(chǔ)的網(wǎng)絡(luò)層BaseNetworkManager作為父類,子類通過繼承父類來獲得父類的功能,子類可以自己添加自己獨(dú)有的功能。此處發(fā)現(xiàn)少引入了一個(gè)名為CocoaLumberjack的第三方庫,這是一個(gè)可以搭建自己日志的第三方框架。將CocoaLumberjack添加進(jìn)podfile之后,因?yàn)橛袎Φ木壒剩覀冃枰褂?pod install --no-repo-update這條命令來更新pod庫。用單例實(shí)現(xiàn)一個(gè)sharedAFManager,然后對(duì)GET和POST方法進(jìn)行實(shí)現(xiàn),完成對(duì)于基礎(chǔ)網(wǎng)絡(luò)層BaseNetworkManager的編寫。

通過獲取到的JSON數(shù)據(jù),我們使用一款名為VisualJSON的軟件進(jìn)行解析,我們需要對(duì)獲取到的每一個(gè)數(shù)據(jù)建立一個(gè)相應(yīng)的模型與之對(duì)應(yīng),一般來說,通過看到一個(gè)字典,新建一個(gè)子類的方法進(jìn)行解析。

VisualJSON
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容