我已将此代码添加到我的UITableViewController以返回灰色标题部分。
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];
[headerView setBackgroundColor:[UIColor grayColor]];
return headerView;
}
然而现在这样做我看不到标题字符......我是否需要将其添加为子视图?还是有另一种做事方式?
我有这些方法将标题和标题文本添加到UITablView,但是当我使用上面的方法时,我再也看不到它们了。
// Section headers
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [sectionLetterArray objectAtIndex:section];
}
// Section header titles
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
return sectionLetterArray;
}
答案 0 :(得分:7)
如果您创建自己的tableView:viewForHeaderInSection
,则必须创建UILabel或其他内容,并自行填写文本,例如:
- (UIView *) tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.bounds.size.width, 30)];
[headerView setBackgroundColor:[UIColor grayColor]];
// Add the label
UILabel *headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(kSectionTitleLeftMargin,
kSectionTitleTopMargin,
tableView.bounds.size.width - kSectionTitleLeftMargin - kSectionTitleRightMargin,
30.0 - kSectionTitleTopMargin - kSectionTitleBottomMargin)];
// do whatever headerLabel configuration you want here
headerLabel.text = [self tableView:tableView titleForHeaderInSection:section];
[headerView addSubview:headerLabel];
// Return the headerView
return headerView;
}
显然,将headerLabel更改为您想要的设置,但关键的主要信息是,如果您创建自己的视图,则必须自己创建标签并填写文本。
答案 1 :(得分:1)
当您实现该方法时,带有标签的默认视图将替换为您返回的内容,因此您需要为其添加一个标签,其中包含您想要的任何文本。