如何在故事板中更改tableHeaderView的高度?

时间:2016-08-05 10:30:41

标签: ios objective-c uitableview storyboard

我试图在storyboard中自定义tableHeaderView,问题是看起来tableHeaderView有固定的大小。当我运行这个程序时,它看起来像这样: my custom headerView

实际上,两个灰色的UILabel是我的headerView的一部分,但正如你所看到的,它有固定的大小。我已经尝试在viewDidLoad中更改headerView的大小:

    UIView *headerView = self.tableView.tableHeaderView;
    CGRect frame = headerView.frame;
    frame.size = CGSizeMake(frame.size.width, frame.size.width / 2.6);
    headerView.frame = frame;
    [self.tableView updateConstraintsIfNeeded];
P.S:我已经看到了一些类似的问题,但他们刚刚用updateConstraintsIfNeeded解决了这个问题,但我不知道它对我有用。我的Xcode版本是7.2,谢谢!

4 个答案:

答案 0 :(得分:2)

试试此代码

headerView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

答案 1 :(得分:0)

只需按照代码:

unit

答案 2 :(得分:0)

你在使用AutoLayout吗?请按照

进行操作
- (void)sizeHeaderToFit
{
    UIView *header = self.tableView.tableHeaderView;

    [header setNeedsLayout];
    [header layoutIfNeeded];

    CGFloat height = [header systemLayoutSizeFittingSize:UILayoutFittingCompressedSize].height;
    CGRect frame = header.frame;

    frame.size.height = height;
    header.frame = frame;

    self.tableView.tableHeaderView = header;
}

答案 3 :(得分:0)

为什么不能创建自定义UIView子类并在其中添加标签?

func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 100;//whatever size you want
}

func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
    let sectionInfo = fetchedResultsController!.sections! as [NSFetchedResultsSectionInfo]

    let headerView = CustomView()
    headerView.backgroundColor = UIColor.redColor()
    headerView.addLabels()//add two labels in this method
    return headerView
}