在UITableview中更改节标题的颜色

时间:2010-03-05 21:01:07

标签: iphone objective-c uitableview sectionheader

我有一个非常简单的简单问题(我希望如此)。如何将UITableview中的节标题颜色从默认蓝色更改为黑色透明? 提前谢谢。

3 个答案:

答案 0 :(得分:21)

这是一个老问题,但我认为答案需要更新。

此方法不涉及定义您自己的自定义视图 在iOS 6及更高版本中,您可以通过定义
来轻松更改背景颜色和文本颜色

- (void)tableView:(UITableView *)tableView 
        willDisplayHeaderView:(UIView *)view 
        forSection:(NSInteger)section
委托方法。

例如:

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section
{
    // Background color
    view.tintColor = [UIColor blackColor];

    // Text Color
    UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
    [header.textLabel setTextColor:[UIColor whiteColor]];

    // Another way to set the background color
    // Note: does not preserve gradient effect of original header
    // header.contentView.backgroundColor = [UIColor blackColor];
}

取自我的帖子: https://happyteamlabs.com/blog/ios-how-to-customize-table-view-header-and-footer-colors/

答案 1 :(得分:18)

您需要在UITableViewDelegate协议中实现此方法:

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

以下是documentation

的链接

...并做这样的事情(以你自己的颜色为子):

UIView *sectionView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 22)] autorelease];
[sectionView setBackgroundColor:[UIColor blackColor]];
return sectionView;

您还可以使用整数部分替换颜色或类似的颜色。我认为这些部分的默认高度是22,但你可以随心所欲地制作它。这是你的问题的意思吗?希望这会有所帮助。

答案 2 :(得分:0)

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