要件;スウィフトtableView.reloadRowsセルの削除
私はスタティックUITableView
を持っていて、セルの1つをクリックするとpickerview
を開こうとしています。 heightForRowAt
でサイズを変更しますので、cell
をクリックするとサイズが変わるようにreload
する必要があります。私はreloadData()
を使用している場合、それは完璧に動作します(私はそう、私はアニメーションを追加することができますreloadRows
を使用したい)
問題:
私はreloadRows(at..., with: .automatic)
行が単に消えしようとします。 reloadRows
がviewWillAppear
に変更されても、行は消えません。
コード:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print(indexPath)
if colorCelllExpandedIndex != nil{
let prev = colorCelllExpandedIndex
colorCelllExpandedIndex = nil
tableView.reloadRows(at: [prev!], with: .automatic)
//tableView.reloadData()
} else {
colorCelllExpandedIndex = indexPath
colorCell.frame.size.height = CGFloat(colorCellExpandedHeight)
tableView.reloadRows(at: [indexPath], with: UITableViewRowAnimation.automatic)
}
}
override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if indexPath == colorCelllExpandedIndex {
return CGFloat(colorCellExpandedHeight)
} else {
if indexPath.row == 1 {
return CGFloat(colorCellRegularHeight)
}
return UITableViewAutomaticDimension
}
}
画面イメージ: