代码之家  ›  专栏  ›  技术社区  ›  Reveclair

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

  •  1
  • Reveclair  · 技术社区  · 9 年前

    我希望实现这样的分段控制(用红色圈出):

    enter image description here

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

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

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

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

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

    2 回复  |  直到 9 年前
        1
  •  2
  •   TomSwift    9 年前

    我想你有两个选择。

    1) 创建一个容器视图来容纳两个“单元格”(不必是UITableViewCells,只需要视图…)。添加单个容器视图作为表标题。

    2) 完全使用表标题,只需将视图放在表上方,使其更短。如果您使用的是UITableViewController,则这会更复杂,但如果您只是在其他自定义UIViewController中托管UITableView,则这很简单。

        2
  •  0
  •   ozd    9 年前

    这是一个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;
    }