- 頁面展示
Github下載地址:MVVM_Demo
有時(shí)候?qū)懼鴮懼杏X真的是,只要自己習(xí)慣熄捍,怎樣寫都可以。
PersonModel和LoginViewController只是為了登錄上侵俗,獲取token然后能夠正常的請(qǐng)求數(shù)據(jù)殿较。重點(diǎn)是登陸之后的進(jìn)入的界面.
ViewModel這個(gè)類是跟Model綁定的,同時(shí)和Cell交互并且和ViewController交互澜躺。
ViewModel其實(shí)就是一個(gè)FrameModel,在獲取到數(shù)據(jù)源的時(shí)候蝉稳,就將各個(gè)控件的frame抒蚜、cellHeight都計(jì)算出來,在需要的地方直接使用即可.
而對(duì)于Cell上自定義的控件耘戚,在請(qǐng)求下來數(shù)據(jù)之后嗡髓,自定義的View持有ViewModel,在自己的類中進(jìn)行賦值,這樣各司其職收津,最后在VC中刷新下饿这,搞定。
Request這個(gè)類單獨(dú)是為了請(qǐng)求撞秋,相當(dāng)于從ViewController中封裝了出去长捧,在ViewController中,Request初始化對(duì)象吻贿,然后將獲取到的數(shù)據(jù)給ViewModel去處理串结,ViewModel根據(jù)數(shù)據(jù)去繪制Frame,Cell中根據(jù)ViewModel給控件賦值舅列。最后頁面展示肌割。
至于頁面的上拉刷新我感覺怎么寫都需要回到VC中去處理,再怎么封裝帐要,你最后都要用到tablevew把敞,而tableview是VC持有的,其實(shí)可以進(jìn)行封裝榨惠,但是感覺好累啊奋早,封來封去,不是在難為自己冒冬。伸蚯∧γ欤看公司需要吧简烤。
現(xiàn)在作為一個(gè)彩筆,也只能一點(diǎn)一點(diǎn)的自己琢磨摇幻,希望能夠遇到志同道合的朋友横侦,有啥技術(shù)上的問題相互幫助。我知道自己寫的還有很大的問題绰姻,希望大神們多多指點(diǎn)枉侧。
最后一點(diǎn)就是感覺MVP和MVVM差的不是太多,MVP就是寫個(gè)協(xié)議狂芋,讓VC去實(shí)現(xiàn)榨馁,為的就是刷新頁面,需要用到VC去做的時(shí)候就在協(xié)議中加個(gè)方法帜矾,而MVVM感覺用的是block回調(diào)翼虫,來實(shí)現(xiàn)的屑柔,當(dāng)然了這只是我這個(gè)彩筆的想法,大神們有什么想法珍剑,可以評(píng)論下指點(diǎn)一下掸宛。