我正在创建一个新的tableviewcontroller但是,我需要这个动态的方式,每个单元格的布局可能会改变。
我的意思是我正在从JSON解析新闻。每个新闻项目可以有3种类型:帖子,成就,公告。这些类型中的每一种都包含不同的信息。帖子将有标题,日期,图像和标签。公告将具有相同但包括重要性标签。成就将包括用户名,图像,日期,个人资料图片,社交分享。
新闻列表页面将显示所有项目,但按日期排序,但每种类型的布局完全不同。
我已经开始并成功完成了以下工作:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
if(indexPath.row == 0)
{
let cell: NewsPostTableViewCell = tableView.dequeueReusableCellWithIdentifier("newsPostTableCell") as! NewsPostTableViewCell
return cell
}
else
{
let cell: AchievementCardTableViewCell = tableView.dequeueReusableCellWithIdentifier("achievementCardTableCell") as! AchievementCardTableViewCell
return cell
}
}
显示2个不同的布局但我开始思考,我将如何在cellForRowAtIndexPath中确定要应用的布局?基本上在JSON响应中会有一个模板标识符来通知应用程序要应用哪个模板,但是如果可能的话,我们就不知道如何应用这个模板。
最好为每个布局创建3个不同的视图控制器1并嵌入它们吗?
答案 0 :(得分:0)
根据您解析JSON的方式,您可以将单元格类型存储到数组中。然后当你使用indexPath.row根据它找到的类型查看数组时,你可以执行一个Switch。