0
セル内のサブビューの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)
}
}
セルコード:サブビュー(extraView
)が含まれ
:
// MyCell
func showExtraView() {
contentView.addSubview(extraView)
contentView.setNeedsLayout()
}
func hideExtraView() {
extraView.removeFromSuperview()
contentView.setNeedsLayout()
}
これは以下のようにそれが見えるものです画像とラベル。ラベルは正しくアニメーションされますが、イメージはアニメーションの一部でないかのように表示されます。