设置UITableView Section的背景颜色和字体颜色

有个app需要用到tableView,系统自带的section样式不怎么好看,需要自己修改下,找到了修改的方法,mark下

section所显示的灰色背景和白色字体是默认的,调用以下方法即可实现
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
    return 3;
}

如果想改变此处的背景与字体的话,官方没有开放接口去直接修改以上两个属性,所以,只有自己加Label,加View去实现,代码如下:

实现委托方法- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView* myView = [[UIView alloc] init];
    myView.backgroundColor = [UIColor clearColor];
    UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(30, 0, 200, 22)];
    titleLabel.textColor=[UIColor whiteColor];
    titleLabel.backgroundColor = [UIColor clearColor];
   
    if (section == 0){
        titleLabel.text = @"本机设备";
    }
    else if (section == 1)
    {
        titleLabel.text = @"信息";
    }
    else
    {
        titleLabel.text = @"设置";
    }
    [myView addSubview:titleLabel];
   
    return myView;
}

需要注意是:

1)这个方法里返回视图的大小是固定不变的;

2)The table view automatically adjusts the height of the section header to accommodate the returned view object. The table view does not call this method if it was created in a plain style (UITableViewStylePlain).

3)-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{}中的高度要和viewForHeaderInSection中的高度一致。

猜你喜欢

转载自wsanranbr.iteye.com/blog/1829395