我试图解决的问题是为加载的任务返回多个单元格,因为我无法在没有加载全新任务的情况下进行迭代。
每个视图都有一个或多个应该为该特定任务加载的单元格,我似乎无法解决问题。谢谢你的帮助!
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let categoryCells = self.tasks[indexPath.row] as? Task
var cellChooser: BoredTaskCell!
if selectedTaskCategory == "Movie"{
let cell = tableView.dequeueReusableCellWithIdentifier("imdbCell") as! BoredTaskCell!
cell!.selectionStyle = UITableViewCellSelectionStyle.None
cellChooser = cell
}
else if selectedTaskCategory == "Lifestyle" {
let emailCell = tableView.dequeueReusableCellWithIdentifier("emailCreatorCell") as! BoredTaskCell!
emailCell!.selectionStyle = UITableViewCellSelectionStyle.None
cellChooser = emailCell
}
else {
let emptyCell = tableView.dequeueReusableCellWithIdentifier("messageCell") as! BoredTaskCell!
cellChooser = emptyCell
emptyCell!.selectionStyle = UITableViewCellSelectionStyle.None
}
return cellChooser
}
答案 0 :(得分:3)
简短的回答是,您无法将一个电话中的两个小区返回cellForRowAtIndexPath
。但是为了实现你想要的,改变你构造tableView的方式,所以每个任务都有一个部分,而不是每个任务有一个单元。即使用indexPath.section
作为数组的索引。您将需要修改所有表视图数据源方法(例如,因此numberOfSectionsInTableView
将返回self.tasks.count
)。诀窍来自numberOfRowsInSection
,通常应该返回1,但是对于那些需要两个单元格的任务,它应该返回2.然后在cellForRowAtIndexPath
中,使用{{1}确定要显示的任务}。然后,如果indexPath.row为0,则使用一个单元格类型(例如imdbcell),如果为1,则使用其他单元格类型(例如,消息单元格)。