0

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

如果我将背景颜色更改为白色在此处输入图像描述

如果我改变背景颜色以清除想法 在此处输入图像描述

这是我更改表格视图标题大小的代码:

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

请有任何修复它的建议!

4

2 回答 2

1

使用这个 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))
    }


}
于 2017-07-21T10:38:57.243 回答
0

创建一个 xib,其中包含header view您要添加的类型TableView。然后在using方法viewWillAppear的方法中加载您的 xib 。现在通过使用将返回的视图添加为标题,controller[[NSBundle mainBundle]loadNibNamed:@""]NSBundletableViewtv.tableHeaderView = <your UI view>;

于 2016-05-30T04:23:14.793 回答