更新多节UITableView的单个部分

时间:2014-02-25 12:50:02

标签: ios uitableview

我在故事板中创建了UITableViewController。它有两个部分。第一部分的行包含在故事板中布局的控件。我想使用数组中的值更新第二部分中的行。

我是iOS开发的新手。我了解如何使用UITableViewDataSource基于数组更新表,而不是如何将更新限制为特定部分。任何人都可以概述如何做到这一点吗?

编辑这似乎是一个简单的问题,所以我认为我的代码会掩盖这个问题。也许我错了。继承人我所拥有的:

我的numberOfRowsInSection函数在节号中返回1是0,因为第一节(我在storyboard中设计的那个)有一行,否则它返回后备数据数组中的元素数: / p>

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (section == 0)
        return 1;
    else
        return [myData length];
}

如果节号为1,我的cellForRowAtIndexPath函数会创建一个单元格。但如果节号为零,我不知道该怎么办。如何避免重新创建我在故事板中布置的行?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
   if(indexPath.section == 1)
   {
       cell.textLabel.text = [myData objectAtindex:indexPath.row]; 
   }
   else
   {
       // What to do here?
   }
}

5 个答案:

答案 0 :(得分:3)

那么如果您在第一部分中只有很少的静态控件,为什么不将这些控件放在表头视图中呢?因此,您只需要担心一个部分:)

答案 1 :(得分:1)

在您的方法- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath中添加此

创建2个不同的UITableViewCells并像这样引用它们

if (indexPath.section == 1) {
    NSString *CellIdentifier = @"DynamicCell";
    VideoCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    //You are drawing your second section so you can use your array as values

    cell.property1...
    cell.property2...
    cell.property3...

    return cell;

}else{//If you have only 2 sections then else represent your first section
    //You are drawing your first section
    NSString *CellIdentifier = @"StaticCell";
    VideoCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    return cell;
}

答案 2 :(得分:0)

您可以更改委托方法

中的行值
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

要识别该部分,只需使用:

indexPath.section

答案 3 :(得分:0)

您可以将reloadRowsAtIndexPaths:与所需部分中所有indexPath的数组一起使用,并使用循环和NSMutableArray构建。

答案 4 :(得分:0)

- (void)reloadSections:(NSIndexSet *)sections 
      withRowAnimation:(UITableViewRowAnimation)animation;

参数“section”是标识要重新加载的部分的索引集。