淺談構建iOS一個動態(tài)化頁面的思路

? ? ? ?隨著產(chǎn)品的不斷迭代,功能的不斷完善诞仓,我們的項目的中會給用戶分成區(qū)域呈現(xiàn)出越來越多的東西缤苫。咕咚的精選給用戶一種信息廣場的概念,讓用戶可以快速的抵達我們感興趣的點墅拭。既然如此活玲,那么每一個項目的綜合信息的頁面經(jīng)常會被改動。出現(xiàn)位置的調(diào)整帜矾,出現(xiàn)新的模塊的增加翼虫,出現(xiàn)模塊的刪減等等。那么我們就一定要思考我們該如何構建我們這一部分的代碼屡萤,在一次次的更改后可以用最短的時間完成產(chǎn)品的需求珍剑。最大限度的提高我們的工作效率。

下面我們通過咕咚的精選頁面來思考一下具體的實現(xiàn)思路


我們看到這個圖片的時候先思考一個問題死陆,這么多個分區(qū)到底有多少請求接口招拙? 有小伙伴可能說這不是一個接口完成的么? 然后變成一個很復雜的json返回給客戶端措译,然后在慢慢的做解析别凤,我想這樣的做法,這個界面每一次更改服務端和客戶端都要經(jīng)歷一次代碼的拆分领虹,要改很多的東西规哪,這對于兩端的開發(fā)人員一定是不友好的,我也順手用charles抓了咕咚的包塌衰,驗證了我的想法诉稍,他們這個界面確實是多個接口組成的。那多個接口能給我們帶來什么好處呢最疆?

現(xiàn)在請大家思考一下杯巨,如果產(chǎn)品會在下個版本中添加一個模塊,調(diào)整兩個模塊之間的順序努酸,之后還會刪減部分模塊服爷,甚至出現(xiàn)改變多個分區(qū)的順序的情況的更改?我們?nèi)绾巫鲂薷牟拍茏畲蠡臏p少我們的代碼邏輯呢获诈,減少我們的工作量呢仍源?

我們的項目最近在做相似模塊的重構,我的tableview界面現(xiàn)在每一個分區(qū)的位置完全可以根據(jù)運營的數(shù)據(jù)在服務端進行動態(tài)的調(diào)整位置舔涎,可以根據(jù)運營的數(shù)據(jù)镜会,在不改變客戶端的代碼的情況下動態(tài)的去刪除一些模塊。這又是如何完成的呢终抽?

這里我做的一件事就是動態(tài)的綁定 戳表,我給每一分區(qū)的數(shù)據(jù)整體添加一個固定的identifier此外服務器返回給我一個數(shù)據(jù)塊的排序桶至,我通過這兩點生成我tableview的數(shù)據(jù)源即可。下面是部分實現(xiàn)代碼 匾旭,最近我也會寫一個小demo放在github上分享給大家镣屹,一起高效的完成我們的工作。

首先是請求代碼价涝,當然只是偽代碼女蜈,希望大家主要去了解一種解決方案和思路。使用dispatch_group并發(fā)多個請求 在所有請求完成之后完成界面對應的刷新的工作色瘩。


將每一個部分看成一個請求即可伪窖,我們會把每一個模塊的請求結果緩存在本地,下一次請求的時候如果此時數(shù)據(jù)請求失敗居兆,會從本地讀取上一次的數(shù)據(jù)覆山。然后我用偽代碼來寫一下我和服務器之間約定的返回的基本形式


每一個請求服務器在返回的數(shù)據(jù)格式中都會告訴我這三個數(shù)據(jù)。這三個數(shù)據(jù)就為我模塊順序調(diào)整和動態(tài)刪除的關鍵泥栖。這個時候我就先使用適配器模式給每一個返回書籍模型添加固定屬性identifer簇宽,因為請求數(shù)較小我就用了快排的方式將返回的數(shù)據(jù)轉(zhuǎn)換成數(shù)據(jù)模型后根據(jù)sort和isUser兩個維度創(chuàng)建了我tableview的數(shù)據(jù)源。

這樣在tableView中我們看到的形式就變成了下圖的樣子 我們完全可以根據(jù)identifier動態(tài)的去部署我們的每一cell 同理可以設置高度等相關的內(nèi)容 吧享,這個大致思路就是如此魏割,最近會寫一個小demo,有這個整體一些的代碼钢颂。

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末钞它,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子殊鞭,更是在濱河造成了極大的恐慌须揣,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钱豁,死亡現(xiàn)場離奇詭異,居然都是意外死亡疯汁,警方通過查閱死者的電腦和手機牲尺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幌蚊,“玉大人谤碳,你說我怎么就攤上這事∫缍梗” “怎么了蜒简?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長漩仙。 經(jīng)常有香客問我搓茬,道長犹赖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任卷仑,我火速辦了婚禮峻村,結果婚禮上,老公的妹妹穿的比我還像新娘锡凝。我一直安慰自己粘昨,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布窜锯。 她就那樣靜靜地躺著张肾,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锚扎。 梳的紋絲不亂的頭發(fā)上吞瞪,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機與錄音工秩,去河邊找鬼尸饺。 笑死,一個胖子當著我的面吹牛助币,可吹牛的內(nèi)容都是我干的浪听。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼眉菱,長吁一口氣:“原來是場噩夢啊……” “哼迹栓!你這毒婦竟也來了?” 一聲冷哼從身側響起俭缓,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤克伊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后华坦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愿吹,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年惜姐,在試婚紗的時候發(fā)現(xiàn)自己被綠了犁跪。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡歹袁,死狀恐怖坷衍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情条舔,我是刑警寧澤枫耳,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站孟抗,受9級特大地震影響迁杨,放射性物質(zhì)發(fā)生泄漏钻心。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一仑最、第九天 我趴在偏房一處隱蔽的房頂上張望扔役。 院中可真熱鬧,春花似錦警医、人聲如沸亿胸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侈玄。三九已至,卻和暖如春吟温,著一層夾襖步出監(jiān)牢的瞬間序仙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工鲁豪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留潘悼,地道東北人。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓爬橡,卻偏偏與公主長得像治唤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子糙申,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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