0

我正在尝试设置一个 UITableView,每个部分有 x 个部分和 X 个行。

但是我想在我的顶部添加一行。UITableView有没有办法将它硬编码到视图中?

我目前根据 NSdictionary 像这样返回每个部分的部分和行数。

- (NSInteger)numberOfSectionsInTableView: (UITableView *)tableView
{
    // Return the number of sections.
    return [letterDictionary count];

}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    // returns the number of rows per section based off each entry in letterDictionary   
    currentLetter = [sectionLetterArray objectAtIndex:section];
    return [[letterDictionary objectForKey:currentLetter] count];       
}
4

3 回答 3

1

您可以向表格视图添加“标题”。

在您的表格视图类中:

self.tableView.tableHeaderView = yourView;
于 2012-08-21T01:48:55.733 回答
0

您不能只在表格中的 UItable 上方添加一行。如果您只需要一行文本,为什么不根据您的需要使用 UITextField、UILabel 或 UITextView,并将其放置在您喜欢的 UItable 上方。

如果我误解了你,而你只是想在第一部分中添加一行作为第一行,那么你需要做的就是这样:

if (section == 0) {
  return [[letterDictionary objectForKey:currentLetter] count]+1;
} else
{
  return [[letterDictionary objectForKey:currentLetter] count];
}

并确保在为 indexpath 返回行时,您也有类似的 if 语句,并返回 section == 0 和 row == 0 所需的任何内容。

但是,如果您向下滚动表格视图,第一行肯定会滚动出去 - 正如我所说的,我不确定您到底需要什么。

于 2012-08-20T22:00:43.360 回答
0

您可以尝试自定义您的 tableview 部分的标题...
例如,您可以使用以下内容:

YourController.h
-(UIView *)headerView;

YourController.m
-(UIView *)headerView
{
    UIView *header = [[UIView alloc] initWithFrame:CGRectZero];
    // Place everything you want in your header
    // using [header addSubview:yourSubview];
    // Finally set header's frame and return it
    header.frame = CGRectMake(0.0, 0.0, 320.0, 44.0);
    return header;
}

// Use this to return header's height
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
    if (section == yourSection)
    {
        return [self headerView].frame.size.height;
    }
    else
    {
        return [self sectionHeaderHeight];
    }
}

// Use this to return your view
-(UIView *)tableView:(UITableVIew *)tableVIew viewForHeaderInSection:(NSInteger)section
{
    if (section == yourSection)  // To show the header only on a specified section
    {
        return [self headerView];
    }
    else
    {
        return nil;
    }
}

如果您改变主意并想在 tableView 下方进行自定义,您可以使用相同的方法更改 Header 和 Footer。
最后看看有关这些方法的文档:
- tableView:viewForHeaderInSection:
- tableView:heightForHeaderInSection:
- tableView:viewForFooterInSection:
- tableView:heightForFooterInSection:

希望这符合您的需求!

于 2012-08-20T22:42:16.023 回答