如何在表视图的标题中添加多个单元格(不是节标题)?

时间:2015-07-22 13:58:29

标签: ios uitableview uisegmentedcontrol

我想实现这样的分段控件(用红色圈出):

enter image description here

(当我们滚动这个视图时,分段控件在视图的顶部保持粘性,这让我认为它本身就是一个单元格?但我可能错了。)

我已经实现了一个自定义单元格(在上面的图片中以紫色显示红色椭圆上方的内容)并将其添加到我的表格视图的标题中,如下所示:

BigCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"BigCell"];
self.tableView.tableHeaderView = cell;

现在,我想我应该在其中创建一个带有分段控件的第二个单元格,并将其添加到表格标题中(而不是在标题标题中,因为我有许多标题部分)。

然后,我会创建一个包含这两个单元格的UIView并将此视图添加为我的tableView的标题?这是一个正确的方法吗? 非常感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

我认为你有几个选择。

1)制作一个容器视图来托管你的两个"单元格#34; (不需要UITableViewCells - 只是视图......)。将单个容器视图添加为表头。

2)放弃使用表格标题并将您的观点放在桌子上方,使其缩短。如果您正在使用UITableViewController,这会更复杂,但如果您只是在其他自定义UIViewController中托管UITableView,则会很简单。

答案 1 :(得分:0)

这是一个例子,uilabel坚持到顶部 - 只需将其改为你的uisegmentedcontrol

-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    UIView *viewForSectionHeader = [[UIView alloc] initWithFrame:CGRectMake(0, 0, tableView.frame.size.width, SETTINGS_HEADER_HEIGHT)];
    [viewForSectionHeader setBackgroundColor:[Utils colorHeaderBlue]];
    UILabel *lblSectionTitle = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, SETTINGS_HEADER_HEIGHT)];
    lblSectionTitle.text = @"PROFILE";
    lblSectionTitle.textAlignment = NSTextAlignmentCenter;
    lblSectionTitle.textColor = [UIColor whiteColor];
    [viewForSectionHeader addSubview:lblSectionTitle];

    return viewForSectionHeader;
}