我在更改TableView上的颜色和字体方面遇到了一些麻烦,我已将其分为4个部分,其中包含名称等等,我可以;似乎可以让它工作我不知道我做错了什么?
- (NSString *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
NSString *sectionName = nil;
switch(section)
{
case 0:
sectionName = [NSString stringWithString:@"Date"];
break;
case 1:
sectionName = [NSString stringWithString:@"Gig"];
break;
case 2:
sectionName = [NSString stringWithString:@"City"];
break;
case 3:
sectionName = [NSString stringWithString:@"Country"];
break;
}
UILabel *sectionHeader = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 40)] autorelease];
sectionHeader.backgroundColor = [UIColor clearColor];
sectionHeader.font = [UIFont boldSystemFontOfSize:18];
sectionHeader.textColor = [UIColor whiteColor];
sectionHeader.text = sectionName;
return sectionName;
}
答案 0 :(得分:4)
你应该返回视图而不是字符串......
这是你要归来的
return sectionName;
这就是你应该回归的......
return sectionHeader;
答案 1 :(得分:2)
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
是在UITableView的标题中显示视图的正确方法。在这里,您可以返回您的UILabel对象。
您正在尝试返回NSString对象而不是UILabel。返回类型的方法也是错误的。它应该是UIView类型。
答案 2 :(得分:1)
-(UIView*)tableView:(UITableView*)tableView viewForHeaderInSection:(NSInteger)section{
NSString *sectionName = nil;
switch(section)
{
case 0:
sectionName = [NSString stringWithString:@"Date"];
break;
case 1:
sectionName = [NSString stringWithString:@"Gig"];
break;
case 2:
sectionName = [NSString stringWithString:@"City"];
break;
case 3:
sectionName = [NSString stringWithString:@"Country"];
break;
}
UILabel *sectionHeader = [[[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 40)] autorelease];
sectionHeader.backgroundColor = [UIColor clearColor];
sectionHeader.font = [UIFont boldSystemFontOfSize:18];
sectionHeader.textColor = [UIColor whiteColor];
sectionHeader.text = sectionName;
return sectionHeader;
}
该代码向您展示了如何实现TableViewCOntroller的viewForHeaderInSection委托方法,您需要实现该方法以实现所需。你的代码返回NSString,它应该返回UIView。