How can we change the font of tableview header?

前端 未结 5 994
灰色年华
灰色年华 2021-01-30 07:51

I am using some background color for the tabelView and style is grouped. The text in the header for the sections is not clear so I need to modify the the text color so that the

相关标签:
5条回答
  • 2021-01-30 08:11

    Adding to terente's answer:

    - (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;
    }
    

    You can use [UIFont fontWithName:@"<name of your font>" size:24.0]; for other fonts

    0 讨论(0)
  • 2021-01-30 08:22
    - (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]];
    }}
    

    We can use header.textlabel object to change other "UILabel" properties for that label.

    0 讨论(0)
  • 2021-01-30 08:29

    Just implement

    - (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
    

    And return your custom view for header.

    Edit:

    - (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 讨论(0)
  • 2021-01-30 08:32
    - (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]];
    }
    


    Notes:

    • This will set the font to a custom font but keep the pointSize the same.
    • Also works for willDisplayFooterView.
    • Don't forget to change Your-Font-Name to your font.
    0 讨论(0)
  • 2021-01-30 08:34
    - (void) tableView : (UITableView*) tableView willDisplayHeaderView : (UIView*) view forSection : (NSInteger) section{
    
        [((UITableViewHeaderFooterView) *view).textLabel setFont:(UIFont...)];
    }
    

    and you can set the text label from the other table view delegate method.

    0 讨论(0)
提交回复
热议问题