有时候我们可以会嫌弃系统的section 的 title 的字体 和颜色 ,不美观,影响整个app 的 搭配。
效果:
上面的整体效果很差,那我们就要 自定义 UITableView的Section 的 title 的字体 和颜色 。
用到自定义的时候可能比较多,下面是具体的方法:
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
if(section == 0)
return @"简介";
else
return @"";
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
NSString *sectionTitle = [self tableView:tableView titleForHeaderInSection:section];
if (sectionTitle == nil) {
return nil;
}
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(20, 8, 320, 20);
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor blackColor];
label.shadowColor = [UIColor grayColor];
label.shadowOffset = CGSizeMake(-1.0, 1.0);
label.font = [UIFont boldSystemFontOfSize:20];
label.text = sectionTitle;
UIView *view = [[UIView alloc] init];
[view addSubview:label];
return view;
}
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section {
if(section == 0)
return @" ";
else
return @"Copyright©1985-2013 JustinJing All Rights Reserved.";
}
-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
{
NSString *sectionTitle = [self tableView:tableView titleForFooterInSection:section];
if (sectionTitle == nil) {
return nil;
}
UILabel *label = [[UILabel alloc] init];
label.frame = CGRectMake(20, 8, 320, 20);
label.lineBreakMode=NSLineBreakByWordWrapping;
label.numberOfLines=0;
label.backgroundColor = [UIColor clearColor];
label.textColor = [UIColor blackColor];
label.shadowColor = [UIColor grayColor];
label.shadowOffset = CGSizeMake(-1.0, 1.0);
label.font = [UIFont boldSystemFontOfSize:11];
label.text = sectionTitle;
UIView *view = [[UIView alloc] init];
[view addSubview:label];
return view;
}
主要是设置section 的 viewForFooterInSection 和 viewForHeaderInSection 这样就可以自定义了。
修改后的效果是:
注意:示例代码没有release ,是因为我用了ARC,如果没有用ARC ,请注意Release