我设法让我的细胞动起来。我在CGFloat类型中创建了一个名为rowHeight的全局变量,并将其隐式赋值为40.我将此代码写下来:
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
return rowHeight
}
在触摸事件中:
@IBAction func lessonCollapser(sender: AnyObject) {
if rowHeight == 40 {
self.tableView.beginUpdates()
UIView.animateWithDuration(1, animations: {self.rowHeight = 0})
self.tableView.endUpdates()
} else if rowHeight == 0 {
self.tableView.beginUpdates()
UIView.animateWithDuration(1, animations: {self.rowHeight = 40})
self.tableView.endUpdates()
}
}
到目前为止一切顺利。即使它是动画,也有一些问题。
首先:我的自定义标题消失了。
第二:我收到错误:"没有重复使用表格单元格的索引路径"。我认为因为没有索引路径,标题会消失。这是预料之中的。不期望的是,为什么我的桌子'我使用动画时索引路径消失了吗?我认为这是因为beginUpdates()
和endUpdates()
。有人可以建议我做点什么吗?
标题视图的代码:
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let headerCell = tableView.dequeueReusableCellWithIdentifier("HeaderCell") as! lessonHeaderTableViewCell
switch (section) {
default:
headerCell.lessonHeader.setTitle("TEST HEADER", forState: .Normal)
}
return headerCell
}
上面的代码会发生什么:我使用" headerCell"创建了一个原型单元格。标识符。我在里面扔了一个按钮。我创建了一个名为" lessonHeaderTableViewCell的swift文件。我将它指定为原型单元的类,以便它可以控制它。最后,我创建了一个名为" lessonHeader"对于按钮,在我创建的swift文件中。