美文网首页iOS学习笔记
UITableView实现动态加载页面

UITableView实现动态加载页面

作者: 稻_草_人 | 来源:发表于2017-08-03 15:37 被阅读0次

    引:最近写个项目,自己写的模块有这样的需求:一个页面排列着不同的产品卡(考虑用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

    相关文章

      网友评论

        本文标题:UITableView实现动态加载页面

        本文链接:https://www.haomeiwen.com/subject/hsoulxtx.html