我有一个带有2个不同自定义单元格的tableview,它们都有自己独特的单元格可重用标识符。我需要这些每个都有不同的高度。我的cellForRowAtIndexPath
看起来像这样:
//3
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject!) -> PFTableViewCell? {
let PostObject = object as! Post
if PostObject["fichierimage"] as? PFFile == nil {
let cell2 = tableView.dequeueReusableCellWithIdentifier("cell10", forIndexPath: indexPath) as! cell0Entry
return cell2
}
else {
let cell = tableView.dequeueReusableCellWithIdentifier("cell9", forIndexPath: indexPath) as! cell4
return cell
}
}
这可以将所有数据正确加载到tableview中。但是两个单元格的高度保持在481,而第一个单元格的高度应该是99.我在故事板中将其高度设置为99但我认为tableView行高度超过了它。我在heightForRowAtIndexPath
中尝试了这个,但它没有用,它会抛出错误并导致应用崩溃:
override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
let object1 = objectAtIndexPath(indexPath)
let object2 = object1 as! Post
// this next line throws the error
if object2["fichierimage"] as? PFFile == nil {
return 99
}
else {
return 481
}
}
错误消息显示:
由于未捕获的异常'NSRangeException'而终止应用, 原因:'*** - [__ NSArrayM objectAtIndex:]:索引2超出界限[0 .. 1]
答案 0 :(得分:0)
修改
// this next line throws the error
if object2["fichierimage"] as? PFFile == nil {
return 99
}
else {
return 481
}
对此:
if let _ = object2["fichierimage"] as? PFFile {
return 99
}
else {
return 481
}
告诉我它是否有效