sectionName TableView - 我做错了啥?
Posted
技术标签:
【中文标题】sectionName TableView - 我做错了啥?【英文标题】:sectionName TableView - What am I doing wrong?sectionName TableView - 我做错了什么? 【发布时间】:2012-06-27 08:19:43 【问题描述】:我在更改 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;
【问题讨论】:
【参考方案1】:你应该返回视图而不是字符串...
这就是你要返回的东西
return sectionName;
这是你应该返回的..
return sectionHeader;
【讨论】:
【参考方案2】:- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
是在 UITableView 的 header 中呈现视图的正确方法。在这里你可以返回你的 UILabel 对象。
您正试图返回一个 NSString 对象而不是 UILabel。方法的返回类型也是错误的。它应该是 UIView 类型。
http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewDelegate_Protocol/Reference/Reference.html
【讨论】:
【参考方案3】:-(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。
【讨论】:
请解释为什么此代码与问题中的代码不同/更好。仅由代码组成的答案通常不是一个好的答案。 是的,你能解释一下代码吗,我已经试过了,现在它把sectionNames从视图中移除了!谢谢 @NathanCleary 请在方法中设置高度 - (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section以上是关于sectionName TableView - 我做错了啥?的主要内容,如果未能解决你的问题,请参考以下文章
NSFetchedResultsController:如何从实体的多对多关系中获取sectionName
NSFetchedresultsController sectionName KeyPath 基于当前位置和其他位置之间的范围