iOS用MVVM構(gòu)架寫個界面就是這么簡單

  • 頁面展示
Simulator Screen Shot - iPhone 8 Plus - 2018-05-20 at 18.10.15.png

Github下載地址:MVVM_Demo
有時候?qū)懼鴮懼杏X真的是,只要自己習(xí)慣,怎樣寫都可以。

PersonModel和LoginViewController只是為了登錄上,獲取token然后能夠正常的請求數(shù)據(jù)。重點是登陸之后的進入的界面.

ViewModel這個類是跟Model綁定的,同時和Cell交互并且和ViewController交互。

ViewModel其實就是一個FrameModel,在獲取到數(shù)據(jù)源的時候,就將各個控件的frame、cellHeight都計算出來,在需要的地方直接使用即可.

而對于Cell上自定義的控件,在請求下來數(shù)據(jù)之后,自定義的View持有ViewModel,在自己的類中進行賦值,這樣各司其職,最后在VC中刷新下,搞定。

Request這個類單獨是為了請求,相當于從ViewController中封裝了出去,在ViewController中,Request初始化對象,然后將獲取到的數(shù)據(jù)給ViewModel去處理,ViewModel根據(jù)數(shù)據(jù)去繪制Frame,Cell中根據(jù)ViewModel給控件賦值。最后頁面展示。

至于頁面的上拉刷新我感覺怎么寫都需要回到VC中去處理,再怎么封裝,你最后都要用到tablevew,而tableview是VC持有的,其實可以進行封裝,但是感覺好累啊,封來封去,不是在難為自己。??垂拘枰伞?/p>

E0756B0B-D8D6-47E6-9694-52199457C31D.png

現(xiàn)在作為一個彩筆,也只能一點一點的自己琢磨,希望能夠遇到志同道合的朋友,有啥技術(shù)上的問題相互幫助。我知道自己寫的還有很大的問題,希望大神們多多指點。

最后一點就是感覺MVP和MVVM差的不是太多,MVP就是寫個協(xié)議,讓VC去實現(xiàn),為的就是刷新頁面,需要用到VC去做的時候就在協(xié)議中加個方法,而MVVM感覺用的是block回調(diào),來實現(xiàn)的,當然了這只是我這個彩筆的想法,大神們有什么想法,可以評論下指點一下。

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

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