禮物說仿寫

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


解壓后得到927張圖片

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

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

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


NavigationBar和TabBar的初步實現

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



獲取到的JSON數據網址

精選頭部圖片

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

創意生活

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

設計感

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

文藝風

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

品類 風格 對象

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


仔細觀察這些API,可以發現有幾個是相類似的,僅僅幾個數字不一樣,那么就可以放在一起進行解析。


下面進行網絡層的編寫,首先需要一個基礎的網絡層BaseNetworkManager作為父類,子類通過繼承父類來獲得父類的功能,子類可以自己添加自己獨有的功能。此處發現少引入了一個名為CocoaLumberjack的第三方庫,這是一個可以搭建自己日志的第三方框架。將CocoaLumberjack添加進podfile之后,因為有墻的緣故,我們需要使用 pod install --no-repo-update這條命令來更新pod庫。用單例實現一個sharedAFManager,然后對GET和POST方法進行實現,完成對于基礎網絡層BaseNetworkManager的編寫。

通過獲取到的JSON數據,我們使用一款名為VisualJSON的軟件進行解析,我們需要對獲取到的每一個數據建立一個相應的模型與之對應,一般來說,通過看到一個字典,新建一個子類的方法進行解析。

VisualJSON
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容