i have changed the backgroundColor/backgroundImage of my tableviews sections.
I am using plain tableView.
No worries, get worked without problems with this code:
Just add [titleLabel setBackgroundColor:[UIColor clearColor]];
because in my case the label overlapped the green color.
The viewForHeaderInSection
overrides the titleForHeaderInSection
method.
To add a title to your header when using viewForHeaderInSection
you will need to add a label to the section header view like so:
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *sectionView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 728, 40)] autorelease];
sectionView.backgroundColor = [UIColor greenColor];
//Add label to view
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 728, 40)];
titleLabel.text = @"title";
[sectionView addSubview:titleLabel];
[titleLabel release];
return sectionView;
}
Set the back color or background image from this code. Here you don't have to calculate for section height, just set in xib.
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
UIView *sectionView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width,tableView.sectionHeaderHeight)];
sectionView.backgroundColor = [UIColor greenColor];
return sectionView;
}
There is a delegate method
- (void)tableView:(UITableView *)tableView
willDisplayHeaderView:(UIView *)view
forSection:(NSInteger)section
You can use this method like this
-(void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {
//Set the background color of the View
view.tintColor = [UIColor blueColor];
// Text Color
UITableViewHeaderFooterView *header = (UITableViewHeaderFooterView *)view;
[header.textLabel setTextColor:[UIColor whiteColor]];
}
Implement method below from UITableViewDelegate, and needed ui view.
func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {
let view = UITableViewHeaderFooterView()
view.contentView.backgroundColor = UIColor(white: 0.97, alpha: 1)
return view
}
If you need change footer use similar code in ...viewForFooterInSection.. method
Want to draw you own font, use similar customization:
...
let label = UILabel(frame: CGRectMake(0, 0, CGRectGetWidth(tableView.bounds), tableView.sectionHeaderHeight))
label.font = UIFont(name: "HelveticaNeue", size: 14)!
label.text = self.tableView(tableView, titleForHeaderInSection: section)
view.contentView.addSubview(label)
view.textLabel.hidden = true
...