自定义tableHeaderView隐藏单元格

时间:2016-05-30 01:30:41

标签: ios swift uitableview tableheader

我正在尝试将一个视图添加到tableview作为tableHeaderView。我从界面构建器拖动一个视图并将其放入我的tableview中。标题的大小很小,所以我通过编码调整大小。当我运行我的应用程序时,它变成这样:

如果我将背景颜色更改为白色 enter image description here

如果我更改背景颜色以明确想法 enter image description here

以下是我更改tableview标题大小的代码:

self.myTableView.tableHeaderView?.frame = CGRectMake(0, 0, screenWidth, 290)

有任何建议可以解决它!

2 个答案:

答案 0 :(得分:0)

创建一个xib,其中包含您要在header view上添加TableView的{​​{1}}种类。然后使用viewWillAppear方法在controller的{​​{1}}方法中加载xib。现在,使用[[NSBundle mainBundle]loadNibNamed:@""]

NSBundle返回的视图添加为tableView标题

答案 1 :(得分:0)

使用此UItableView扩展。

我遇到了同样的问题

extension UITableView {

    func setTableHeaderView(headerView: UIView?) {
        // set the headerView
        tableHeaderView = headerView

        // check if the passed view is nil
        guard let headerView = headerView else { return }

        // check if the tableHeaderView superview view is nil just to avoid
        // to use the force unwrapping later. In case it fail something really
        // wrong happened
        guard let tableHeaderViewSuperview = tableHeaderView?.superview else {
            assertionFailure("This should not be reached!")
            return
        }

        // force updated layout
        headerView.setNeedsLayout()
        headerView.layoutIfNeeded()

        // set tableHeaderView width
        tableHeaderViewSuperview.addConstraint(headerView.widthAnchor.constraint(equalTo: tableHeaderViewSuperview.widthAnchor, multiplier: 1.0))

        // set tableHeaderView height
        let height = headerView.systemLayoutSizeFitting(UILayoutFittingCompressedSize).height
        tableHeaderViewSuperview.addConstraint(headerView.heightAnchor.constraint(equalToConstant: height))
    }


}
相关问题