Andyy
Andyy

Reputation: 495

UITableView SectionHeader not displaying custom image background

I'm modifying the look of my TableView's section header. I've managed to get the text working just fine. But the the background image doesn't seem to be showing up at all.

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{
    UIView *headerView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 30)] autorelease];
    UILabel *sectionTitle = [[[UILabel alloc] initWithFrame:CGRectMake(10, 0, 320, 30)] autorelease];
    sectionTitle.text = [[tableDataSource objectAtIndex: section] objectForKey: @"Title"];
    sectionTitle.font = [UIFont fontWithName:@"Helvetica-Bold" size:14];
    //sectionTitle.textColor = [UIColor whiteColor];
    sectionTitle.shadowColor = [UIColor colorWithWhite:0 alpha:0.4];
    sectionTitle.shadowOffset = CGSizeMake(1, 1);
    sectionTitle.backgroundColor = [UIColor colorWithWhite:0 alpha:0];
    //headerView.backgroundColor = [UIColor whiteColor];

    UIImageView *sectionHeaderBG = [[UIImageView alloc] init];
    UIImage *image = [UIImage imageNamed:@"CellBackgroundGrey4.png"];
    sectionHeaderBG.image = image;

    [headerView addSubview:sectionTitle];    
    [headerView addSubview:sectionHeaderBG];
    [headerView autorelease];
    return headerView;
}

Is there something I'm missing?

Upvotes: 1

Views: 2245

Answers (3)

Akshay
Akshay

Reputation: 5765

I think you missed setting the frame of the UIImageView.

Upvotes: 2

Nirmit Pathak
Nirmit Pathak

Reputation: 39

//custom sections
- (NSString *)tableView:(UITableView *)tblView titleForHeaderInSection:(NSInteger)section {

    NSString *sectionName = nil;

    //set the table background to clear so you can see the background view behind it
    tableView.backgroundColor = [UIColor clearColor];

    //where does this go?

    UILabel *sectionHeader = [[UILabel alloc] init];
    sectionHeader.backgroundColor = [UIColor clearColor];
    sectionHeader.font = [UIFont boldSystemFontOfSize:18];
    sectionHeader.textColor = [UIColor whiteColor];

    //What is missing here?

    switch (section) {
        case 0:
            sectionName = [NSString stringWithFormat:@"Header Text 1"];
            break;
        case 1:
            sectionName = [NSString stringWithFormat:@"Header Text 2"];
            break;
        case 2:
            sectionName = [NSString stringWithFormat:@"Header Text 3"];
            break;
    }

    return sectionName;

Upvotes: 0

Saran
Saran

Reputation: 6392

Give it a try:

headerView.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"CellBackgroundGrey4.png"]]; 

Upvotes: 4

Related Questions