【发布时间】:2017-05-27 16:53:32
【问题描述】:
我想为单元格中子视图的addSubview 设置动画。表格视图单元格具有动态高度,因此折叠和展开动画是原生完成的。
这是代码:
// MARK: UITableViewDelegate
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if let selectedCell = tableView.cellForRow(at: indexPath) as? MyCell {
selectedCell.showExtraView()
expandedCells.insert(indexPath)
}
if let prevSelectedCell = tableView.cellForRow(at: prevIndexPath) as? MyCell {
prevSelectedCell.hideExtraView()
expandedCells.remove(prevIndexPath)
}
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if expandedCells.contains(indexPath) {
return CGFloat(100.0)
} else {
return CGFloat(80.0)
}
}
单元格代码:
// MyCell
func showExtraView() {
contentView.addSubview(extraView)
contentView.setNeedsLayout()
}
func hideExtraView() {
extraView.removeFromSuperview()
contentView.setNeedsLayout()
}
这就是它的样子:
子视图 (extraView) 包括图像和标签。标签动画正确,但图像只是出现在那里,好像它不是动画的一部分。
【问题讨论】:
标签: ios swift uitableview animation tableviewcell