如何在表格视图的标题中添加多个单元格(不是部分标题)?
Posted
技术标签:
【中文标题】如何在表格视图的标题中添加多个单元格(不是部分标题)?【英文标题】:How to add multiple cells in header of a table view (not section header)? 【发布时间】:2015-07-22 13:58:29 【问题描述】:我想实现这样的分段控件(红色圈出):
(当我们滚动这个视图时,分段控件会粘在视图的顶部,这让我觉得它本身就是一个单元格?但我可能错了)。
我已经实现了一个自定义单元格(在上图中以紫色显示红色椭圆上方的内容)并将其添加到我的表格视图的标题中,如下所示:
BigCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"BigCell"];
self.tableView.tableHeaderView = cell;
现在,我想我应该创建一个包含分段控件的第二个单元格,并将它也添加到表格标题中(而不是在部分标题中,因为我有很多带有标题的部分)。
然后,我会创建一个包含这两个单元格的 UIView 并将这个视图添加为我的 tableView 的标题?这是正确的方法吗? 非常感谢您的帮助!
【问题讨论】:
那么您是在问如何将 UISegmentedControl 添加到视图中?或者如何让视图贴在表格视图的顶部? @Steve_Wilford 抱歉不清楚,我首先要问的是,(可能)如何实现上面发布的示例图片中的分段控件?我正在考虑表格标题视图,但我已经在其中放置了一个单元格。其次,我怎样才能让这个分段控件粘在顶部。 很难准确地说出您给出的示例中发生了什么。但是,如果您将其添加到 tableView 的节标题中,您想要做的肯定是可能的。 @Reveclair 嗨。只需将 BigCell 和 SegmentedControl 合并到单个视图中即可。最好使用UITableViewHeaderFooterView
而不是UITableViewCell
。
【参考方案1】:
我认为您有几个选择。
1) 制作一个容器视图来托管您的两个“单元格”(不必是 UITableViewCells - 只是视图......)。添加单个容器视图作为表头。
2) 完全放弃使用表格标题,只需将视图放在表格上方,使其更短。如果您使用的是 UITableViewController,这会更复杂,但如果您只是在其他一些自定义 UIViewController 中托管 UITableView,则很简单。
【讨论】:
非常感谢您的回答。我可能会考虑您的第二种解决方案,因为它似乎可以使分段控件粘在顶部(参见***.com/questions/12993212/…)。但是,它也会使我所说的紫色大细胞也粘在上面?考虑到这两个视图将在 tableview 之外。再次感谢。 您可以随意布局。在 Interface Builder 中使用自动布局为您的三个视图定义几个约束 - 紫色、分段、表格视图。如果你走这条路,不要使用 UITableViewController!【参考方案2】:这是一个 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;
【讨论】:
谢谢你的回答,我试过了。但是考虑到我的 tableView 中有很多部分,每个部分都有一个标题,这不会成功。此外,是什么让这个标头在您的代码中具有粘性?谢谢!以上是关于如何在表格视图的标题中添加多个单元格(不是部分标题)?的主要内容,如果未能解决你的问题,请参考以下文章
如何在swift ios中将多个图像添加到自定义表格视图单元格?