0

我想创建一个看起来像这样的 tableView。(嗯,有不同的标题;))

在此处输入图像描述

到目前为止,我在一些应用程序中看到了这些,但我不知道如何制作这些。由于色调(如导航栏中)和各种应用程序中的相似外观,我猜这些不是自定义单元格而是不同的东西。

还有一个问题(如果它们是自定义单元格)。当我在故事板表格视图中更改原型单元格的单元格高度/背景时,它不会显示在应用程序中,直到我为其创建一个额外的 customcell 类。我错过了什么?

if (indexPath.row == 0 || indexPath.row == 7)
{
    static NSString *CellIdentifier = @"TitleCell";
    UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    //heigh does not change -.-
    if (cell1 == nil){
        cell1 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    return cell1;
}
else {
static NSString *CellIdentifier = @"FirstCell";
UITableViewCell *cell1 = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell1 == nil){
    cell1 = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell1.textLabel.text = [[articles objectAtIndex:indexPath.row]objectForKey:labelkey1];
4

1 回答 1

3

它们是节标题。

您可以通过添加此方法来添加节标题:

- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{ 
     return @"My title";
}

要添加多个部分,您需要从以下方法传递一个合适的值:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 7;
}

传递每个部分的行数:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return 2;
}

从上面的代码中,您将获得 7 个部分,每个部分有 2 行。您需要相应地处理部分、行及其数据。

表视图:titleForHeaderInSection:

向数据源询问表视图指定部分的标题标题。- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section 参数

表视图

The table-view object asking for the title.  section

An index number identifying a section of tableView .

返回值

用作节标题标题的字符串。如果您返回 nil ,该部分将没有标题。讨论

表格视图对节标题标题使用固定的字体样式。如果您想要不同的字体样式,请改为在委托方法 tableView:viewForHeaderInSection: 中返回自定义视图(例如,UILabel 对象)。可用性

Available in iOS 2.0 and later.

也可以看看

– tableView:titleForFooterInSection:

在 UITableView.h 中声明

参考 :

  1. UITableView 数据源
  2. UITableView
于 2012-11-04T10:31:13.393 回答