UITableView 添加分组样式和添加段

Posted

技术标签:

【中文标题】UITableView 添加分组样式和添加段【英文标题】:UITableView adding grouped style and adding segments 【发布时间】:2011-12-20 16:45:32 【问题描述】:

我需要创建一个类似于this image 的分组表视图控制器

我已经确定这个 tableview 有 2 个段,所以我为每个段添加了 2 个段和 2 行。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 

if(section == 0) return 2;
else return 2;
 

1.) 我遇到的问题是,如何在表格视图的第一段顶部添加标签。

我必须在 2 个组(表格视图)之间添加 2 个按钮,我知道如何添加一个按钮,但是如何添加 2 个?

- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section 
    if (section == 0) 
      UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
       [button setTitle:@"Hello" forState:UIControlStateNormal];
       // How to add the 2nd button ?
       return button;
    
     return nil;
  

3.) 当我添加带有 2 个段的组表视图时,我没有得到单元格中的圆边,我是如何得到的?

4.) 我只需要第二段的编辑功能(这样我就可以删除记录)。所以当我点击编辑按钮时,我应该只能删除第二段的记录。这可能吗 ?如果是这样,我该怎么做?

【问题讨论】:

这是类参考,按 ctrl+f 并输入 grouped,然后按 enter。您会在桌面上看到一些文档...developer.apple.com/library/ios/#documentation/uikit/reference/… 您的回答没有帮助。无论如何,谢谢你,我已经浏览过了! @lllep 这就是为什么它是评论,而不是答案^_^ @Gabe 哦!是的,对不起:D @lllep 一切都很好,我会在你的问题上提供更多帮助,但被问到的不仅仅是一件事......这个问题让我有点困惑。 【参考方案1】:

    我假设您在谈论节的标题?在这种情况下,使用 TableView 委托方法 titleForHeaderInSection

    不要使用页脚添加按钮。如果您需要“在单元格之间”的按钮,只需创建一个没有标题标题的新部分,一行到两行,然后将按钮作为行的一部分。

    确保正确设置了 tableView 样式:

    initWithStyle:UITableViewStyleGrouped];

    使用 tableview 委托方法 canEditRowAtIndexPath 允许/禁止编辑(删除)单元格。

【讨论】:

这是关于问题 2。假设我有 3 个段,并且我在第一个两个部分中有固定数量的单元格。第三部分可能有很多细胞。所以我需要滚动视图才能下来。再次关于问题 4,我只需要从第 3 部分中删除行,那么可以使用 canEditRowAtIndexPath 来完成吗?我想要做的是仅将滚动添加到第 3 段,并将其余部分保持为不可滚动的段。这可能吗? 你能告诉我一个示例代码如何将 2 个按钮添加到 titleForHeaderInSection。我能够向 viewForFooterInSection 添加 1 个按钮。但无法添加 2 个按钮 你不能轻易做到这一点(我不知道任何方式)。也就是说,您可以在一个视图中拥有两个不同的 TableView,但您需要外包数据源和委托方法。看看这个 SO 帖子:***.com/questions/254354/… 对于示例代码问题,您不需要使用titleForHeaderInSection(应该返回一个NSString)。您需要将这些按钮放在一个单元格中。【参考方案2】:

1) 关于标签,您是要在其正上方添加标签,还是直接在其顶部添加标签? 试试这个,我不确定语法是否正确,但如果你弄乱了它,它应该可以工作。

UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(10, 20, w, h)];
[titleLabel setText:@"TITLE"];
[**your UITableView** addSubview:titleLabel];
[self.view addSubview:**your UITableView**];
[titleLabel release];

3) 圆边...我对此不太确定,但它要么是 1. 您的 xcode 版本,也许圆边位于较新/较旧版本的 xcode 中,因此您可能需要升级。 .. 2. 在示例中,他们使用的是自己制作的自定义 tableview,或者是不同类型的 UITableView。

4) 你可以有一个布尔函数来检查权限,比如如果用户按下了某个部分或另一个,布尔函数会检查,这可以用来禁用/启用你的函数的编辑部分。

【讨论】:

我需要添加标签,如图所示。在表格的第 1 段上方

以上是关于UITableView 添加分组样式和添加段的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将 UITableView 样式从普通转换为组 [重复]

带有标题部分的插入分组 UITableView

UITableView:制作单独的部分并添加标题和副标题

用部分动态填充分组的 uitableView

向分组的 UITableView 添加阴影

动态地将单元格添加到分组的 uitableview 并以编程方式适应滚动