V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fhefh
V2EX  ›  iOS

[咨询]iOS 中 tableView 管理的问题

  •  
  •   fhefh · 2016-02-16 09:33:15 +08:00 · 2848 次点击
    这是一个创建于 3215 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如有这么一个需求

    要做一个展示商品页面:
    第一行图片
    第二行商品介绍
    第三行展示评价

    代码:
    在 tableView 的 dataSource 和 delegate 方法里面直接 if/else 判断:
    if (index == 0) {
    //图片
    } else if (index == 1) {
    //商品介绍
    } else if (index == 2) {
    //评价
    }

    请教一下有木有好点方法

    11 条回复    2016-02-17 15:19:35 +08:00
    fengzeyan
        1
    fengzeyan  
       2016-02-16 09:42:34 +08:00
    Scrollview 好了。。
    vincentxue
        2
    vincentxue  
       2016-02-16 09:49:30 +08:00
    创建了一个类作为 model, 每个类实例代表了一条 data. 每次只需要创建若干这个类实例, cell 接收类实例传入, 展示的时候直接展示就好.

    这个类的内容根据你的需求不同而不同.
    loveuqian
        3
    loveuqian  
       2016-02-16 09:52:34 +08:00
    cell 接收 data
    重写 data 的 set 方法,在里面搞事
    doluvor
        4
    doluvor  
       2016-02-16 10:10:27 +08:00
    你的 tableView 的每个 cell 应该有对应 viewModel 。 viewModel 里面应该有 cell 的类型,当然更好的设计是不同的 cell 类型应该实现不同的 protocol ,通过 viewModel 的类型来生成不同的 cell 。
    jjgod
        5
    jjgod  
       2016-02-16 10:29:31 +08:00
    你的需求用 UIStackView 就行,不需要 Table View 。
    ameba
        6
    ameba  
       2016-02-16 10:29:41 +08:00
    换 UIStackView 吧
    nathanw
        7
    nathanw  
       2016-02-16 11:39:46 +08:00
    用 2 楼的方法,自定义 model ,
    然后在 dataSource 和 delegate 里面,根据 model 类型判断,而不是 indexPath
    zjmdp
        8
    zjmdp  
       2016-02-16 17:03:04 +08:00
    没有人建议用不同的 section 来处理这些异构的 model 么?
    3 个 section ,直接判断 indexPath.section 来处理图片,商品介绍和评价
    zjmdp
        9
    zjmdp  
       2016-02-16 17:03:50 +08:00
    @jjgod iOS 9 的特性,一般 app 至少也要支持到 iOS 8 吧
    c447279704
        10
    c447279704  
       2016-02-16 18:17:56 +08:00
    三个 cell ,作为 datasource 的属性,三个 cell 放到一个数组,直接把 index.section 作为 index 从数组中取 cell 即可
    bullettrain1433
        11
    bullettrain1433  
       2016-02-17 15:19:35 +08:00
    @zjmdp fdstackview 支持 ios6 还是 ios7 来的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5280 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 03:48 · PVG 11:48 · LAX 19:48 · JFK 22:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.