我试图在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,谢谢!
答案 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
}