我想在表格视图中更改已触摸行的高度(因此它会展开):
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let cell = tableView.cellForRowAtIndexPath(indexPath) as! CustomTableViewCell
if let currentSelection = self.currentSelection {
if currentSelection == indexPath {
tableView.deselectRowAtIndexPath(indexPath, animated: true)
self.currentSelection = nil
tableView.beginUpdates()
tableView.endUpdates()
setupAnimation(cell, hide: true) //Custom animation inside the cell
}
} else {
self.currentSelection = indexPath
tableView.beginUpdates()
tableView.endUpdates()
setupAnimation(cell, hide: false) //Custom animation inside the cell
}
}
func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
if let currentSelection = self.currentSelection {
if indexPath == currentSelection {
return 80.0
}
}
return 50.0
}
这是有效的 - 当我点击该行时,高度变为80.0,当我再次点击它时,高度变回50.0。问题是我的分隔符没有移动。
不仅没有移动,而且当我点击单元格时:
我做错了什么或我在这里错过了什么?
修改
我试图覆盖layoutSubviews方法并忘记了 - 我没有在其中调用super.layoutSubviews()。现在所选单元格的分隔符正在向下移动,但我仍然遇到上面单元格的分隔符消失的问题
答案 0 :(得分:2)
尝试重新加载该单元格
tableView.beginUpdates()
tableView.reloadRowsAtIndexPaths([indexPath], withRowAnimation: UITableViewRowAnimation.Automatic) //try other animations
tableView.endUpdates()
答案 1 :(得分:0)
如果你不必选择你的小区,那么这个帖子就应该是答案:
UITableView separator line disappears when selecting cells in iOS7