如何在UITableView的开头插入UITableViewCell

时间:2012-08-20 21:56:04

标签: iphone ios uitableview

我正在尝试设置一个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];       
}

3 个答案:

答案 0 :(得分:1)

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

在你的tableview类中:

self.tableView.tableHeaderView = yourView;

答案 1 :(得分: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所需的任何内容。

但如果你向下滚动你的桌面视图,第一行肯定会滚动 - 正如我所说,我不确定你需要什么。

答案 2 :(得分: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下方进行自定义,则可以使用相同的方法更改页眉与页脚。
最后看看有关这些方法的文档:
- tableView:viewForHeaderInSection:
- tableView:heightForHeaderInSection:
- tableView:viewForFooterInSection:
- tableView:heightForFooterInSection:

希望这符合您的需求!