项目中 tableView 的 cell 比较复杂,于是我就把这个 cell 的展现形式拆分成: header + cell + footer
这样来展示。
cell 里面有多个 item 类似京东的购物车。
下面的图片使用三种颜色来区分一个完成的 cell 所展示的区域。
我碰到的问题是: cell 的 viewModel 应该采用一下的哪种方式去写。
我尝试了下面的两种形式来写
ViewModel 包含 headerViewModelArray + cellViewModelArray + footerViewModelArray。
这 3 个 viewModel 的数组分别表示对应一个 cell 中 3 个 view 所用到的 ViewModel。
在 ViewModel 中把header + cell + footer
需要展示的元素写在一块
所以问题就来了:
如果我使用 1.
的方法来创建 viewModel 就会造成取 cell 的内容不方便,因为 cell 展示的是商品,商品可能有多个不太好一一对应。然后我使用2.
的方式来创建 ViewModel,可是 MVVM 建议view-model 的内容尽量压缩到我们需要的范围
。当我对 footer 赋值的过程中,cell 对应的属性其实是我不需要的,这样不太符合 MVVM 的建议。
我认为1.
不太靠谱,所以我使用了2.
。
我想请各位给我点关于这种界面使用 MVVM 的建议。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.