UITableView の tableHeaderView の高さをアニメーションつきで変更する
問題点
UITableView の tableHeaderView は、単純に
self.tableView.tableHeaderView.frame.size.height = 500
としても値は変更されません。
対応策
下記のように、いったん別Viewに代入し、tableHeaderViewに再び代入すれば変更できる。
let headerView = self.tableView.tableHeaderView as UIView!
headerView.frame.size.height = 500
self.tableView.tableHeaderView = headerView
アニメーションつきで変更する
let headerView = self.tableView.tableHeaderView as UIView!
UIView.animateWithDuration(1.0, delay: 0.0, options: nil,
animations: { () -> Void in
headerView.frame.size.height = 500
self.tableView.tableHeaderView = headerView
}, completion: { (finished) -> Void in
// do something
})
アニメーションつきで消す場合はこんな感じになるかと思います。