ios tableView headView 高度为0不显示问题

2017-06-14  本文已影响26人  整个夏天

问题描述

从xib中加载出一个view,然后设置tableView的headView,
此时headView无法正常显示,在DebugView中观察到的headView的高度为0.

NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:name owner:nil options:nil];
UIView * view =[nibContents lastObject];
[self.tableView setTableHeaderView:headView];

问题引申

如果从xib中加载出来的view设置为headView后的高度为0,那么直接用代码创建一个view会是什么样的情况了?

UIView * headView =[[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 40)];
headView.backgroundColor=[UIColor redColor];
[self.tableView setTableHeaderView:headView];

此时的headView是可以正常显示的

问题解决

用代码创建一个headView的parentView,然后将从xib中加载出来的headView放在parentView中,将parentView设置为tableView的headView,即可完美解决.

UIView * parentView =[[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 40)];

NSArray *nibContents = [[NSBundle mainBundle] loadNibNamed:name owner:nil options:nil];
UIView * headView =[nibContents lastObject];
headView.frame=parentView.bounds;
[parentView addSubview:headView];

[self.tableView setTableHeaderView:parentView];
上一篇下一篇

猜你喜欢

热点阅读