这是问题所在,
我将UITableViewHeaderFooterView子类化并想要更改字体大小:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.textLabel.textColor = [UIColor colorWithWhite:0.8 alpha:1.0];
//the font is not working
self.textLabel.font = [UIFont systemFontOfSize:20];
NSLog(@"aaa%@", self.textLabel.font);
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
颜色的东西工作正常,但字体没有改变,所以我记录了dequeue:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UITableViewHeader *headerView = [self.tableView dequeueReusableHeaderFooterViewWithIdentifier:MWDrawerHeaderReuseIdentifier];
headerView.textLabel.text = self.sectionTitles[@(section)];
NSLog(@"bbb%@", headerView.textLabel.font);
return headerView;
}
Run Code Online (Sandbox Code Playgroud)
字体仍然在这里,所以我登录didLayoutsubviews:
-(void)viewDidLayoutSubviews
{
UITableViewHeaderFooterView *head = [self.tableView headerViewForSection:0];
NSLog(@"ccc%@", head.textLabel.font);
}
Run Code Online (Sandbox Code Playgroud)
并且字体大小神奇地恢复到默认值!!! 但是我之间没有做任何事情,如果再次改变字体大小viewDidLayoutSubviews,字体就变得正确了.
它让我疯狂!!!
当子类化单元格时,我做同样的字体更改,它工作正常!所以有人能告诉我发生了什么事吗?谢谢!
这是日志:
2014-02-09 16:02:03.339 InternWell[33359:70b] aaa<UICTFont: 0x8da4290> …Run Code Online (Sandbox Code Playgroud)