问题描述
从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];
网友评论