tableView在swift中改变高度

时间:2016-06-27 19:30:32

标签: swift uitableview

我的tableView中有动态细胞计数,如何更改tableView高度?

我试试,但这不起作用:

self.tableView.frame.size.height = CGFloat(height)

1 个答案:

答案 0 :(得分:1)

如果您没有使用autolayouts,那么下面的代码就可以了:

    func adjustTableViewHeight() {
        var height = tableView.contentSize.height
        let maxHeight = (tableView.superview?.frame.size.height)! - self.tableView.frame.origin.y

       if height > maxHeight {
           height = maxHeight
       }

        UIView.animateWithDuration(0.5) { 
            var frame = self.tableView.frame
            frame.size.height = height
            self.tableView.frame = frame
        }
    }

如果您使用的是autolayouts,请使用:

    func adjustTableViewHeight() {
        var height = tableView.contentSize.height
        let maxHeight = (tableView.superview?.frame.size.height)! - self.tableView.frame.origin.y

       if height > maxHeight {
           height = maxHeight
       }

        UIView.animateWithDuration(0.5) { 
           //Assuming 'tableViewHeightConstraint` is an IBOutlet from your storyboard/XIB
            self.tableViewHeightConstraint.constant = height
            self.tableView.setNeedsUpdateConstraints()
        }
    }