比如有这么一个需求
要做一个展示商品页面:
第一行图片
第二行商品介绍
第三行展示评价
代码:
在 tableView 的 dataSource 和 delegate 方法里面直接 if/else 判断:
if (index == 0) {
//图片
} else if (index == 1) {
//商品介绍
} else if (index == 2) {
//评价
}
请教一下有木有好点方法
![]() | 1 fengzeyan 2016-02-16 09:42:34 +08:00 Scrollview 好了。。 |
![]() | 2 vincentxue 2016-02-16 09:49:30 +08:00 创建了一个类作为 model, 每个类实例代表了一条 data. 每次只需要创建若干这个类实例, cell 接收类实例传入, 展示的时候直接展示就好. 这个类的内容根据你的需求不同而不同. |
![]() | 3 loveuqian 2016-02-16 09:52:34 +08:00 cell 接收 data 重写 data 的 set 方法,在里面搞事 |
4 doluvor 2016-02-16 10:10:27 +08:00 你的 tableView 的每个 cell 应该有对应 viewModel 。 viewModel 里面应该有 cell 的类型,当然更好的设计是不同的 cell 类型应该实现不同的 protocol ,通过 viewModel 的类型来生成不同的 cell 。 |
![]() | 5 jjgod 2016-02-16 10:29:31 +08:00 你的需求用 UIStackView 就行,不需要 Table View 。 |
![]() | 6 ameba 2016-02-16 10:29:41 +08:00 换 UIStackView 吧 |
7 nathanw 2016-02-16 11:39:46 +08:00 用 2 楼的方法,自定义 model , 然后在 dataSource 和 delegate 里面,根据 model 类型判断,而不是 indexPath |
8 zjmdp 2016-02-16 17:03:04 +08:00 没有人建议用不同的 section 来处理这些异构的 model 么? 3 个 section ,直接判断 indexPath.section 来处理图片,商品介绍和评价 |
10 c447279704 2016-02-16 18:17:56 +08:00 三个 cell ,作为 datasource 的属性,三个 cell 放到一个数组,直接把 index.section 作为 index 从数组中取 cell 即可 |
![]() | 11 bullettrain1433 2016-02-17 15:19:35 +08:00 @zjmdp fdstackview 支持 ios6 还是 ios7 来的 |