我们如何改变tableview头的字体?
我使用tabelView的一些背景颜色和风格进行分组。 部分标题中的文本不清楚,所以我需要修改文本的颜色,使标题文本应该是可见的。 我想知道我们可以更改标题文字的颜色和大小吗?
添加到terente的答案:
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { if (section == 0) { CGRect screenRect = [[UIScreen mainScreen] applicationFrame]; UIView* headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, screenRect.size.width, 44.0)]; //headerView.contentMode = UIViewContentModeScaleToFill; // Add the label UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0, -5.0, 300.0, 90.0)]; headerLabel.backgroundColor = [UIColor clearColor]; headerLabel.opaque = NO; headerLabel.text = @"Header"; headerLabel.textColor = [UIColor blackColor]; headerLabel.highlightedTextColor = [UIColor blackColor]; //this is what you asked headerLabel.font = [UIFont boldSystemFontOfSize:17]; headerLabel.shadowColor = [UIColor clearColor]; headerLabel.shadowOffset = CGSizeMake(0.0, 1.0); headerLabel.numberOfLines = 0; headerLabel.textAlignment = UITextAlignmentCenter; [headerView addSubview: headerLabel]; [headerLabel release]; // Return the headerView return headerView; } else return nil; }
您可以使用[UIFont fontWithName:@"<name of your font>" size:24.0];
为其他字体
只是执行
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
并返回您的自定义视图的标题。
编辑:
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { UIImageView *headerTitleView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, kSectionHeaderHeight)]; [headerTitleView setImage:sectionHeaderBackgroundImage]; UILabel *sectionTitleLabel = [[UILabel alloc] initWithFrame:CGRectMake((self.view.frame.size.width - 38) / 2, 5, 38, kSectionHeaderHeight - 10)]; sectionTitleLabel.textColor = [UIColor redColor]; sectionTitleLabel.backgroundColor = [UIColor clearColor]; sectionTitleLabel.textAlignment = UITextAlignmentCenter; sectionTitleLabel.text = @"A"; sectionTitleLabel.font = [UIFont fontWithName:@"yourFont" size:13]; [sectionTitleLabel setAdjustsFontSizeToFitWidth:YES]; [headerTitleView addSubview:sectionTitleLabel]; return headerTitleView; }
- (void) tableView : (UITableView*) tableView willDisplayHeaderView : (UIView*) view forSection : (NSInteger) section{ [((UITableViewHeaderFooterView) *view).textLabel setFont:(UIFont...)]; }
您可以从其他表视图委托方法设置文本标签。
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section { [((UITableViewHeaderFooterView *) view).textLabel setFont:[UIFont fontWithName:@"Your-Font-Name" size:((UITableViewHeaderFooterView *) view).textLabel.font.pointSize]]; }
笔记:
- 这将设置字体为自定义字体,但保持
pointSize
相同。 - 也适用于
willDisplayFooterView
。 - 不要忘记将
Your-Font-Name
更改为您的字体。
- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section { if ([view isKindOfClass:[UITableViewHeaderFooterView class]]) { UITableViewHeaderFooterView *headerView = (UITableViewHeaderFooterView*)view; [headerView.textLabel setFont:[UIFont fontWithName:@"Gotham Book" size:16.0f]]; }}
我们可以使用header.textlabel对象来更改该标签的其他“UILabel”属性。