2011-08-03 20 views
4

我使用tabelView的一些背景顏色和樣式進行分組。部分標題中的文本不清楚,所以我需要修改文本顏色,以便標題文本應該可見。 我想知道我們是否可以更改標題文本的顏色和大小?我們如何更改tableview標題的字體?

回答

9

添加到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];其他字體

+0

感謝xs2bush爲您的快速響應,現在我可以將標題標題顏色 – User97693321

+0

更改爲'headerLabel.textColor = [UIColor blackColor];'爲您想要的顏色。 –

+1

不要忘記實現'tableView:heightForHeaderInSection:'或者你的部分頭部不適合你的新視圖。 – Andrew

5

只實現

- (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; 
} 
0
- (void) tableView : (UITableView*) tableView willDisplayHeaderView : (UIView*) view forSection : (NSInteger) section{ 

    [((UITableViewHeaderFooterView) *view).textLabel setFont:(UIFont...)]; 
} 

,你可以從其他的表中設置的文本標籤查看委託方法。

0
- (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更改爲您的字體。
0
- (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」 屬性該標籤。

相關問題