2016-08-24 8 views
2

テーブルビューのヘッダーの高さを0にアニメーション化しようとしています。私が使用しています現在のコードは次のようになります。アニメーションを使用してUITableViewヘッダーのサイズを変更する問題

var newRect = headerView.frame 
    newRect.size.height = 0 
    UIView.animateWithDuration(0.6) { 
     self.headerView.frame = newRect 
    } 

headerViewは、カスタムUIViewのであるので、同じように使用:

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 


     return headerView 

    } 

私はちょうど半分のheaderViewの高さをアニメーション化すると思われるコードを実行すると、私はここで間違っているかもしれない何のアイデア?どのポインタも素晴らしいでしょう。

答えて

1

リロードシステムheightForHeaderInSectionUITableViewを使用するだけです。ベロー、それを行う方法の例があります。これはダミーの例です(セルを使用すると、セクションヘッダ(dis)が表示されます)。

var displayExpandedHeader = true 
let expandedHeight = CGFloat(50) 
let colapsedHeight = CGFloat(0) 
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? { 
    return headerView 
} 
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 

    tableView.beginUpdates() 
    displayExpandedHeader = !displayExpandedHeader 
    tableView.reloadSections(NSIndexSet(index: indexPath.section), withRowAnimation: (!displayExpandedHeader) ? .Top : .Bottom) 
    tableView.endUpdates() 
} 
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat { 
    return (displayExpandedHeader) ? expandedHeight : colapsedHeight 
} 
+0

これは役に立ちました。 – Kex

関連する問題