Ilya Suzdalnitski Ilya Suzdalnitski - 8 months ago 77
iOS Question

UITableView - change section header color

How can I change color of a section header in UITableView?

EDIT: The answer provided by DJ-S should be considered for iOS 6 and above. The accepted answer is out of date.


Hopefully this method from the UITableViewDelegate protocol will get you started:

objC :

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

swift :

func tableView(tableView: UITableView!, viewForHeaderInSection section: Int) -> UIView!
  let headerView = UIView(frame: CGRectMake(0, 0, tableView.bounds.size.width, 30))
  if (section == integerRepresentingYourSectionOfInterest) {
    headerView.backgroundColor = UIColor.redColor()
  } else {
    headerView.backgroundColor = UIColor.clearColor()
  return headerView

Replace [UIColor redColor] with whichever UIColor you would like. You may also wish to adjust the dimensions of headerView.