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

2016-02-16 09:33:15 +08:00
 fhefh

比如有这么一个需求

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

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

请教一下有木有好点方法

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

这个类的内容根据你的需求不同而不同.
loveuqian
2016-02-16 09:52:34 +08:00
cell 接收 data
重写 data 的 set 方法,在里面搞事
doluvor
2016-02-16 10:10:27 +08:00
你的 tableView 的每个 cell 应该有对应 viewModel 。 viewModel 里面应该有 cell 的类型,当然更好的设计是不同的 cell 类型应该实现不同的 protocol ,通过 viewModel 的类型来生成不同的 cell 。
jjgod
2016-02-16 10:29:31 +08:00
你的需求用 UIStackView 就行,不需要 Table View 。
ameba
2016-02-16 10:29:41 +08:00
换 UIStackView 吧
nathanw
2016-02-16 11:39:46 +08:00
用 2 楼的方法,自定义 model ,
然后在 dataSource 和 delegate 里面,根据 model 类型判断,而不是 indexPath
zjmdp
2016-02-16 17:03:04 +08:00
没有人建议用不同的 section 来处理这些异构的 model 么?
3 个 section ,直接判断 indexPath.section 来处理图片,商品介绍和评价
zjmdp
2016-02-16 17:03:50 +08:00
@jjgod iOS 9 的特性,一般 app 至少也要支持到 iOS 8 吧
c447279704
2016-02-16 18:17:56 +08:00
三个 cell ,作为 datasource 的属性,三个 cell 放到一个数组,直接把 index.section 作为 index 从数组中取 cell 即可
bullettrain1433
2016-02-17 15:19:35 +08:00
@zjmdp fdstackview 支持 ios6 还是 ios7 来的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/256753

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX