UITableView实现动态加载页面

引:最近写个项目,自己写的模块有这样的需求:一个页面排列着不同的产品卡(考虑用UITableView写),这些产品卡的顺序、是否显示会根据后台请求的数据,或者当前用户登陆账号的权限来显示(动态的),重构了几次代码,最后得到下面的结果:

1、实现思路

  • 所谓动态是已确定所有卡片的情况下动态
  • 用一个视图模型处理tableView的回调,数据请求逻辑,整个控制器级的逻辑,产品卡模型界面添加等
  • 用一个BaseModel抽象类处理tableView的section级的抽象接口和属性声明(实现在相应子类实现,一个产品卡对应一个子类)
  • 用一个BaseCell抽象类处理tableView的视图与数据关联

2、使用

*第一步: 根据BaseCell为基类定制相应的产品卡,根据BaseModel为基类定制相应产品卡模型,每个产品卡必须对应一个模型

  • 第二步:使用ViewModel的addSubstanceModelName:方法和addSubstanceCellName:方法将模型和产品卡视图添加入视图模型
  • 第三步:使用ViewModel的方法showOrders:调整产品卡的顺序,按照,自己想要的顺序显示
  • 第四步:请求数据(如果请求数据为空,会将model的一个属性设置为NO,不会对改产品卡进行显示)

3、不知道怎么解决的问题

  • 每个model和cell在ViewModel里面根据NSNumber进行定位的,因此在调用showOrders:方法时,需要类似这样传入:[self.viewModel showOrders:@[@(1),@(0),@(2)]];(下标从0开始)
  • 每个model和cell根据基类进行个性定制,model和cell里面的内容不确定,需要根据需求确定,有必要需要修改ViewModel里面的代码(不知道怎么解决)

4、功能demo

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 2017.02.22 可以练习,每当这个时候,脑袋就犯困,我这脑袋真是神奇呀,一说让你做事情,你就犯困,你可不要太...
    Carden阅读 5,244评论 0 1
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,737评论 4 61
  • 前言 由于最近两个多月,笔者正和小伙伴们忙于对公司新项目的开发,笔者主要负责项目整体架构的搭建以及功能模块的分工。...
    CoderMikeHe阅读 27,292评论 74 270
  • 有时候不想和任何人说话 不想做任何反应 想任性一回 每到那个时刻才发现 面对很多事情都会身不由己 生活不是你想干什...
    微笑o干净的像风阅读 1,121评论 0 1
  • 2017年5月17日。星期三。 今天是老干部春季运动会的日子,也是老朋友见面叙旧的日子。所以很多没有决赛项目的老同...
    文武北洋阅读 2,548评论 0 0

友情链接更多精彩内容