开发者

UITableView SectionHeader not displaying custom image background

开发者 https://www.devze.com 2023-03-28 04:37 出处:网络
I\'m modifying the look of my TableView\'s section header. I\'ve managed to 开发者_StackOverflow社区get the text working just fine. But the the background image doesn\'t seem to be showing up at all.

I'm modifying the look of my TableView's section header. I've managed to 开发者_StackOverflow社区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?


Give it a try:

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


I think you missed setting the frame of the UIImageView.


//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;
0

精彩评论

暂无评论...
验证码 换一张
取 消