使用动画调整UITableView标头大小的问题

时间:2016-08-24 06:52:07

标签: ios swift uitableview

我想把我的桌面视图的标题高度设置为0。我正在使用的当前代码是:

    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的高度设置为其大小的一半,而不是0.任何想法我可能在这里做错了什么?任何指针都会很棒。

1 个答案:

答案 0 :(得分: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
}