自定义节标题uilabel背景和文本

时间:2012-04-16 04:59:14

标签: iphone ios uitableview

我目前正在创建自己的自定义节标题,但我从来没有通过代码进行任何文本编辑..而我用来填充自定义标题的新方法正在做一些奇怪的事情,如下面enter image description here所示

我想将文字更改为白色,稍微大一些,并使白色背景透明..

这是我用来执行此操作的代码

- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section 
{
    UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];
    [headerView setBackgroundColor:[UIColor grayColor]];

    // Add the label
    UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.5, 20, 20)];

    // do whatever headerLabel configuration you want here


    headerLabel.text = [self tableView:tableView titleForHeaderInSection:section];
    [headerView addSubview:headerLabel];

    // Return the headerView
    return headerView;
}

我试过这个

[headerLabel.backgroundColor:[UIColor clearColor]];

等但不起作用:(

3 个答案:

答案 0 :(得分:5)

  

我想将文字改为白色......

UILabel的textColor属性是你的朋友。

  

稍微大胆......

没问题! headerLabel.font = [UIFont boldSystemFontOfSize:mySize];

  

制作白色透明背景。

哇,哇,这是我见过的最糟糕的setter语法!我的主人myLabel.backgroundColor是 getter ,更改:

[headerLabel.backgroundColor:[UIColor clearColor]];

为:

[headerLabel setBackgroundColor:[UIColor clearColor]];

幸运的是,使用您的语法只会向nil发送一条消息,这会将您标签的背景颜色默认为白色。

答案 1 :(得分:2)

使用以下代码......

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

UILabel *headername = [[UILabel alloc]initWithFrame:CGRectMake(20, 5, 270, 34)];
headername.backgroundColor = [UIColor clearColor];
headername.textColor = [UIColor blackColor];
if(section == 0)
{
    headername.text = @"Name that u wish";
}

else
{
    headername.text = @"Name that u wish";
}
UIView *headerView = [[UIView alloc] init];
UIImageView *tempimage = [[UIImageView alloc]initWithFrame:CGRectMake(10, 5, 300,34)];
tempimage.image = [UIImage imageNamed:@"whitebackground.png"];

[headerView addSubview:tempimage];
[headerView addSubview:headername];

return  headerView;
}

希望,这会帮助你......冷静

答案 2 :(得分:0)

我所做的就是在表格中获得自定义标题,如下所示,它对我来说很好用

UIView *containerView =
    [[[UIView alloc]
        initWithFrame:CGRectMake(0, 0, 300, 60)]
    autorelease];
UILabel *headerLabel =
    [[[UILabel alloc]
        initWithFrame:CGRectMake(10, 20, 300, 40)]
    autorelease];
headerLabel.text = NSLocalizedString(@"Header for the table", @"");
headerLabel.textColor = [UIColor whiteColor];
headerLabel.shadowColor = [UIColor blackColor];
headerLabel.shadowOffset = CGSizeMake(0, 1);
headerLabel.font = [UIFont boldSystemFontOfSize:22];
headerLabel.backgroundColor = [UIColor clearColor];
[containerView addSubview:headerLabel];
self.tableView.tableHeaderView = containerView;

我只是把它放在viewDidLoad:方法